packages/validator/src/Validator/Loader/InvoiceLoader.php
<?php
/**
* Created by PhpStorm.
* User: Administrador
* Date: 17/07/2017
* Time: 10:27 AM.
*/
declare(strict_types=1);
namespace Greenter\Validator\Loader;
use Greenter\Validator\Metadata\LoaderMetadataInterface;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Mapping\ClassMetadata;
class InvoiceLoader implements LoaderMetadataInterface
{
public function load(ClassMetadata $metadata)
{
$metadata->addPropertyConstraints('tipoDoc', [
new Assert\NotBlank(),
new Assert\Choice([
'choices' => ['01', '03'], 'message' => '1003'
]),
]);
$metadata->addPropertyConstraints('serie', [
new Assert\NotBlank(),
]);
$metadata->addPropertyConstraints('correlativo', [
new Assert\NotBlank(),
new Assert\Regex(['pattern' => '/^[0-9]{1,8}$/', 'message' => 'G001']),
]);
$metadata->addPropertyConstraints('fechaEmision', [
new Assert\NotNull(),
]);
$metadata->addPropertyConstraints('tipoMoneda', [
new Assert\NotBlank(),
]);
$metadata->addPropertyConstraints('mtoOperGravadas', [
new Assert\NotNull(),
]);
$metadata->addPropertyConstraints('mtoOperInafectas', [
new Assert\NotNull(),
]);
$metadata->addPropertyConstraints('mtoOperExoneradas', [
new Assert\NotNull(),
]);
$metadata->addPropertyConstraints('mtoImpVenta', [
new Assert\NotNull(),
]);
$metadata->addPropertyConstraints('client', [
new Assert\NotNull(),
new Assert\Valid(),
]);
$metadata->addPropertyConstraints('company', [
new Assert\NotNull(),
new Assert\Valid(),
]);
$metadata->addPropertyConstraint('details', new Assert\Valid());
$metadata->addPropertyConstraint('legends', new Assert\Valid());
$metadata->addPropertyConstraint('guias', new Assert\Valid());
$metadata->addPropertyConstraint('anticipos', new Assert\Valid());
$metadata->addPropertyConstraint('detraccion', new Assert\Valid());
$metadata->addPropertyConstraint('relDocs', new Assert\Valid());
$metadata->addPropertyConstraint('perception', new Assert\Valid());
$metadata->addPropertyConstraint('guiaEmbebida', new Assert\Valid());
}
}