Ejemplo n.º 1
0
        private bool ValicacionesFacturaVenta(out string resultado, DaoFacturacion dao)
        {
            resultado = dao.ExisteDocumento(this.Request.NitEmpresa, this.Request.entrada.Documento) == true ? "El numero de documeto ya esta registrado" : "";
            if (!string.IsNullOrEmpty(resultado))
            {
                return(false);
            }

            //return ArmarRespuesta("305", "Número de documento invalido", "El numero de documeto ya esta registrado", false);
            return(true);
        }
Ejemplo n.º 2
0
        private bool ValidacionesNotaCredito(out string resultado, DaoFacturacion dao)
        {
            resultado = !string.Equals(this.Request.entrada.Documento, EnumFactura.GetStringValue(EnumFactura.TipoFactura.NotaCredito), StringComparison.InvariantCultureIgnoreCase) ? "Parametro Documento no valido para Nota Credito" : "";
            if (!string.IsNullOrEmpty(resultado))
            {
                return(false);
            }
            resultado = string.IsNullOrEmpty(this.Request.entrada.DocumentoFacturaReferencia) ? "Parametro DocumentoFacturaReferencia obligatorio" : "";
            if (!string.IsNullOrEmpty(resultado))
            {
                return(false);
            }
            resultado = dao.ExisteDocumento(this.Request.NitEmpresa, this.Request.entrada.DocumentoFacturaReferencia) == false ? "El numero DocumentoFacturaReferencia no esta registrado" : "";
            if (!string.IsNullOrEmpty(resultado))
            {
                return(false);
            }

            //return ArmarRespuesta("305", "Número de documento invalido", "El numero de documeto ya esta registrado", false);
            return(true);
        }
Ejemplo n.º 3
0
        public DTODocumentoSalida RegistrarFactura()
        {
            try
            {
                string validacion = "";
                if (!autenticar(out validacion))
                {
                    return(ArmarRespuesta("301", validacion, validacion, false));
                }
                this.Request.ValidarObligatorios(out validacion);
                if (!string.IsNullOrEmpty(validacion))
                {
                    return(ArmarRespuesta("305", validacion, validacion, false));
                }
                this.Request.entrada.ValidarObligatorios(out validacion);
                if (!string.IsNullOrEmpty(validacion))
                {
                    return(ArmarRespuesta("305", validacion, validacion, false));
                }
                this.Request.entrada.Cliente.ValidarObligatorios(out validacion);
                if (!string.IsNullOrEmpty(validacion))
                {
                    return(ArmarRespuesta("305", validacion, validacion, false));
                }
                if (this.Request.entrada.Impuestos != null)
                {
                    foreach (var impuesto in this.Request.entrada.Impuestos)
                    {
                        impuesto.ValidarObligatorios(out validacion);
                        if (!string.IsNullOrEmpty(validacion))
                        {
                            return(ArmarRespuesta("305", validacion, validacion, false));
                        }
                    }
                }
                foreach (var referencia in this.Request.entrada.Referencias)
                {
                    referencia.ValidarObligatorios(out validacion);
                    if (!string.IsNullOrEmpty(validacion))
                    {
                        return(ArmarRespuesta("305", validacion, validacion, false));
                    }
                }
                string         resultado  = "";
                DaoFacturacion dao        = new DaoFacturacion();
                var            parametros = dao.ConsultarParametros();
                if (ValidarDataObligatoria(out resultado, parametros))
                {
                    if (ValidarDataOpcional(out resultado, parametros))
                    {
                        ResponseDocInvoiceRegistrar respuesta = null;
                        int result = -1;
                        if (!int.TryParse(this.Request.entrada.TipoDocumentoElectronico, out result))
                        {
                            return(ArmarRespuesta("305", "Parametro invalido", "Parametro TipoDocumentoEmpresa no valido", false));
                        }
                        var factura = Utilidades.SerializarObjetoAStringXml(this.Request);
                        _auditor.Info("Request servicio " + factura);
                        if (result == Convert.ToInt32(EnumFactura.TipoFactura.FacturaVenta))
                        {
                            if (!ValicacionesFacturaVenta(out resultado, dao))
                            {
                                return(ArmarRespuesta("305", "Parametro invalido", resultado, false));
                            }
                            respuesta = dao.RegistrarFacura(factura);
                            _auditor.Info("Response RegistrarFacura" + respuesta.Doc_ID + " - " + respuesta.Doc_Cufe);
                        }
                        else if (result == Convert.ToInt32(EnumFactura.TipoFactura.NotaDebito))
                        {
                            if (!ValidacionesNotaDebito(out resultado, dao))
                            {
                                return(ArmarRespuesta("305", "Parametro invalido", resultado, false));
                            }
                            respuesta = dao.RegistrarNotaDebito(factura);
                            _auditor.Info("Response RegistrarFacura" + respuesta.Doc_ID + " - " + respuesta.Doc_Cufe);
                        }
                        else if (result == Convert.ToInt32(EnumFactura.TipoFactura.NotaCredito))
                        {
                            if (!ValidacionesNotaCredito(out resultado, dao))
                            {
                                return(ArmarRespuesta("305", "Parametro invalido", resultado, false));
                            }
                            respuesta = dao.RegistrarNotaCredito(factura);
                            _auditor.Info("Response RegistrarFacura" + respuesta.Doc_ID + " - " + respuesta.Doc_Cufe);
                        }
                        else
                        {
                            return(ArmarRespuesta("305", "Parametro invalido", "Parametro TipoDocumentoEmpresa no valido", false));
                        }

                        if (respuesta != null && respuesta.Doc_ID != 0)
                        {
                            this.cufe        = respuesta.Doc_Cufe;
                            this.idDocumento = respuesta.Doc_ID;
                            return(ArmarRespuesta("200", "Exitoso", "Exitoso", true));
                        }
                        else
                        {
                            return(ArmarRespuesta("305", respuesta.Doc_Cufe, respuesta.Doc_Cufe, false));
                        }
                    }
                    else
                    {
                        return(ArmarRespuesta("305", resultado, resultado, false));
                    }
                }
                else
                {
                    return(ArmarRespuesta("305", resultado, resultado, false));
                }
            }
            catch (Exception ex)
            {
                _auditor.Error(new ExcepcionLogable
                {
                    Mensaje    = ex.Message,
                    StackTrace = ex.StackTrace
                });
                return(ArmarRespuesta("305", "Datos Inconsistentes o incompletos", "Datos Inconsistentes o incompletos", false));
            }
        }