Ejemplo n.º 1
0
        public async Task <ActionResult <ClienteResponse> > Post([FromBody] ClienteDTO cliente)
        {
            Logger.Information($"Se recibio posteo de nuevo cliente{cliente.NumeroCliente} - {cliente.RazonSocial} - Id de operacion: {cliente.IdOperacion}");

            int idOperacion = cliente.IdOperacion;

            if (Env.IsProduction())
            {
                if (int.TryParse(cliente.NumeroCliente, out _))
                {
                    cliente.NumeroCliente = string.Format("{0:00000000}", int.Parse(cliente.NumeroCliente));
                }
                ;
                if (int.TryParse(cliente.NumeroSubcuenta, out _))
                {
                    cliente.NumeroSubcuenta = string.Format("{0:00000000}", int.Parse(cliente.NumeroSubcuenta));
                }
            }


            VtmclhDTO clienteFormat = Mapper.Map <ClienteDTO, VtmclhDTO>(cliente);

            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("Error", "Error de formato");
            }

            ClienteResponse response = await Repository.GraboCliente(clienteFormat, "NEW");

            response.IdOperacion = idOperacion;

            if (response.Estado != 200)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
Ejemplo n.º 2
0
        public async Task <ClienteResponse> GraboCliente(VtmclhDTO cliente, string tipoOperacion)
        {
            string errorAltaCodigoPostal = "";

            errorAltaCodigoPostal = await GeneroCodigoPostal(cliente.VTMCLH_CODPAI, cliente.VTMCLH_CODPOS, cliente.VTMCLH_JURISD);

            if (errorAltaCodigoPostal != "")
            {
                return(new ClienteResponse("Bad Request", 0, errorAltaCodigoPostal));
            }

            errorAltaCodigoPostal = await GeneroCodigoPostal(cliente.VTMCLH_PAIENT, cliente.VTMCLH_CODENT, cliente.VTMCLH_JURENT);

            if (errorAltaCodigoPostal != "")
            {
                return(new ClienteResponse("Bad Request", 0, errorAltaCodigoPostal));
            }

            oVTMCLH.instancioObjeto(tipoOperacion);

            Type typeCliente = cliente.GetType();

            System.Reflection.PropertyInfo[] listaPropiedades = typeCliente.GetProperties();

            foreach (System.Reflection.PropertyInfo propiedad in listaPropiedades)
            {
                if (propiedad.PropertyType == typeof(string))
                {
                    oVTMCLH.asignoaTM("VTMCLH", propiedad.Name, (string)propiedad.GetValue(cliente, null), 1, Logger);
                }

                if (propiedad.PropertyType == typeof(List <VtmclcDTO>))
                {
                    oVTMCLH.limpioGrilla("VTMCLC");
                    foreach (VtmclcDTO contacto in cliente.Contactos)
                    {
                        oVTMCLH.asignoaTM("VTMCLC", "", (VtmclcDTO)contacto, 2, Logger);
                    }
                }

                if (propiedad.PropertyType == typeof(List <VtmcliDTO>))
                {
                    //oVTMCLH.limpioGrilla("VTMCLI");
                    foreach (VtmcliDTO impuesto in cliente.Impuestos)
                    {
                        oVTMCLH.asignoaTM("VTMCLI", "", (VtmcliDTO)impuesto, 2, Logger);
                    }
                }
            }

            oVTMCLH.asignoaTM("VTMCLH", "VTMCLH_CODCRD", "NA", 1, Logger);
            oVTMCLH.asignoaTM("VTMCLH", "VTMCLH_ZONENT", "NA", 1, Logger);
            oVTMCLH.asignoaTM("VTMCLH", "VTMCLH_CODEXP", "2", 1, Logger);



            Save PerformedOperation = oVTMCLH.save();

            bool   result       = PerformedOperation.Result;
            string mensajeError = PerformedOperation.errorMessage;


            oVTMCLH.closeObjectInstance();

            if (result == false)
            {
                return(new ClienteResponse("Bad Request", 0, mensajeError));
            }

            return(new ClienteResponse("OK", 0, null, "Cliente generado"));
        }