示例#1
0
        public FacturaDB_ToMensajeReceptor Convertir(Factura_Resolucion facturaResolucion)
        {
            MensajeReceptor documento = new MensajeReceptor()
            {
                DetalleMensaje            = facturaResolucion.DetalleResolucion,
                FechaEmisionDoc           = facturaResolucion.Fecha_Documento,
                Mensaje                   = EnumUtils.SetTypeString <MensajeReceptorMensaje>(facturaResolucion.Resolucion.ToString()),
                TotalFactura              = facturaResolucion.TotalComprobante,
                Clave                     = facturaResolucion.Clave,
                NumeroCedulaEmisor        = facturaResolucion.Emisor_Identificacion_Numero.PadLeft(12).Replace(" ", "0"),
                NumeroCedulaReceptor      = Contribuyente.Identificacion_Numero.PadLeft(12).Replace(" ", "0"),
                NumeroConsecutivoReceptor = facturaResolucion.NumeroConsecutivo
            };

            if (facturaResolucion.TotalImpuesto.HasValue)
            {
                documento.MontoTotalImpuestoSpecified = true;
                documento.MontoTotalImpuesto          = facturaResolucion.TotalImpuesto.Value;
            }


            requestData = new FacturaRequest()
            {
                clave  = facturaResolucion.Clave,
                emisor = new FacturaClient()
                {
                    numeroIdentificacion = Contribuyente.Identificacion_Numero,
                    tipoIdentificacion   = EnumUtils.SetTypeString <FacturaElectronica_V_4_3.IdentificacionTypeTipo>(Contribuyente.Identificacion_Tipo).ToString()
                },
                fecha = facturaResolucion.Fecha_Documento.ToString("yyyy-MM-ddTHH:mm:ss"),
            };

            DocumentoElectronico = documento;
            return(this);
        }
示例#2
0
        public FacturaDB_ToFacturaElectronica Convertir(Factura facturaDB)
        {
            FacturaElectronica FacturaElectronica = new FacturaElectronica()
            {
                Clave          = facturaDB.Clave,
                CondicionVenta = EnumUtils.SetTypeString <FacturaElectronicaCondicionVenta>(facturaDB.CondicionVenta),
                MedioPago      = new FacturaElectronicaMedioPago[] {
                    EnumUtils.SetTypeString <FacturaElectronicaMedioPago>(facturaDB.MedioPago)
                },
                FechaEmision      = facturaDB.Fecha_Emision_Documento,
                NumeroConsecutivo = new ConsecutivoHacienda()
                {
                    CasaMatriz            = facturaDB.CasaMatriz,
                    PuntoVenta            = facturaDB.PuntoVenta,
                    NumeracionConsecutiva = facturaDB.NumeroConsecutivo,
                    TipoDocumento         = (Tipo_documento)facturaDB.Id_TipoDocumento
                }.ToString(),
                               Emisor = new EmisorType()
                {
                    CorreoElectronico = facturaDB.Emisor_CorreoElectronico,
                    Identificacion    = new IdentificacionType()
                    {
                        Tipo   = EnumUtils.SetTypeString <IdentificacionTypeTipo>(facturaDB.Emisor_Identificacion_Tipo),
                        Numero = facturaDB.Emisor_Identificacion_Numero
                    },
                    Nombre          = facturaDB.Emisor_Nombre,
                    NombreComercial = facturaDB.Emisor_NombreComercial,
                    Telefono        = new TelefonoType()
                    {
                        CodigoPais  = facturaDB.Emisor_Telefono_Codigo.Value.ToString(),
                        NumTelefono = facturaDB.Emisor_Telefono_Numero.Value.ToString()
                    },
                    Ubicacion = new UbicacionType()
                    {
                        Barrio     = facturaDB.Emisor_Ubicacion_Barrio.Value.ToString("00"),
                        Provincia  = facturaDB.Emisor_Ubicacion_Provincia.Value.ToString(),
                        Canton     = facturaDB.Emisor_Ubicacion_Canton.Value.ToString("00"),
                        Distrito   = facturaDB.Emisor_Ubicacion_Distrito.Value.ToString("00"),
                        OtrasSenas = facturaDB.Emisor_Ubicacion_OtrasSenas ?? "No indicado"
                    }
                },
                               DetalleServicio = GetDetalleFromFacturaDB(facturaDB.Factura_Detalle).ToArray(),
                               Receptor        = GetReceptorFromFacturaDB(facturaDB),
                               ResumenFactura  = GetResumenFactura(facturaDB)
            };

            DocumentoElectronico = FacturaElectronica;



            requestData = new FacturaRequest()
            {
                clave  = FacturaElectronica.Clave,
                emisor = new FacturaClient()
                {
                    numeroIdentificacion = FacturaElectronica.Emisor.Identificacion.Numero,
                    tipoIdentificacion   = FacturaElectronica.Emisor.Identificacion.Tipo.GetXmlValue()
                },
                fecha = FacturaElectronica.FechaEmision.ToString("yyyy-MM-ddTHH:mm:ss"),
            };

            if (FacturaElectronica.Receptor != null && FacturaElectronica.Receptor.Identificacion != null)
            {
                requestData.receptor = new FacturaClient()
                {
                    tipoIdentificacion   = FacturaElectronica.Receptor.Identificacion.Tipo.GetXmlValue(),
                    numeroIdentificacion = FacturaElectronica.Receptor.Identificacion.Numero,
                };
            }

            return(this);
        }
示例#3
0
        public FacturaDB_ToNotaCredito Convertir(Factura facturaDB, DateTime FechaEmisionOriginal)
        {
            if (!facturaDB.InformacionReferencia_Codigo.HasValue || !facturaDB.InformacionReferencia_FechaEmision.HasValue)
            {
                throw new Exception("Informacion de referencia incompleta");
            }

            NotaCreditoElectronica NotaCreditoElectronica = new NotaCreditoElectronica()
            {
                Clave          = facturaDB.Clave,
                CondicionVenta = EnumUtils.SetTypeString <NotaCreditoElectronicaCondicionVenta>(facturaDB.CondicionVenta),
                MedioPago      = new NotaCreditoElectronicaMedioPago[] {
                    EnumUtils.SetTypeString <NotaCreditoElectronicaMedioPago>(facturaDB.MedioPago)
                },
                FechaEmision      = FechaEmisionOriginal,
                NumeroConsecutivo = new ConsecutivoHacienda()
                {
                    CasaMatriz            = facturaDB.CasaMatriz,
                    PuntoVenta            = facturaDB.PuntoVenta,
                    NumeracionConsecutiva = facturaDB.NumeroConsecutivo,
                    TipoDocumento         = (Tipo_documento)facturaDB.Id_TipoDocumento
                }.ToString(),
                                   Emisor = new NotaCreditoElectronica_V4_3.EmisorType()
                {
                    CorreoElectronico = facturaDB.Emisor_CorreoElectronico,
                    Identificacion    = new NotaCreditoElectronica_V4_3.IdentificacionType()
                    {
                        Tipo   = EnumUtils.SetTypeString <NotaCreditoElectronica_V4_3.IdentificacionTypeTipo>(facturaDB.Emisor_Identificacion_Tipo),
                        Numero = facturaDB.Emisor_Identificacion_Numero
                    },
                    Nombre          = facturaDB.Emisor_Nombre,
                    NombreComercial = facturaDB.Emisor_NombreComercial,
                    Telefono        = new NotaCreditoElectronica_V4_3.TelefonoType()
                    {
                        CodigoPais  = facturaDB.Emisor_Telefono_Codigo.Value.ToString(),
                        NumTelefono = facturaDB.Emisor_Telefono_Numero.Value.ToString()
                    },
                    Ubicacion = new NotaCreditoElectronica_V4_3.UbicacionType()
                    {
                        Barrio     = facturaDB.Emisor_Ubicacion_Barrio.Value.ToString("00"),
                        Provincia  = facturaDB.Emisor_Ubicacion_Provincia.Value.ToString(),
                        Canton     = facturaDB.Emisor_Ubicacion_Canton.Value.ToString("00"),
                        Distrito   = facturaDB.Emisor_Ubicacion_Distrito.Value.ToString("00"),
                        OtrasSenas = facturaDB.Emisor_Ubicacion_OtrasSenas ?? "No indicado"
                    }
                },
                                   DetalleServicio = GetDetalleFromFacturaDB(facturaDB.Factura_Detalle).ToArray(),
                                   Receptor        = GetReceptorFromFacturaDB(facturaDB),
                                   ResumenFactura  = GetResumenFactura(facturaDB)
            };


            NotaCreditoElectronica.InformacionReferencia = new NotaCreditoElectronicaInformacionReferencia[]
            {
                new NotaCreditoElectronicaInformacionReferencia()
                {
                    TipoDoc      = NotaCreditoElectronicaInformacionReferenciaTipoDoc.Item03,
                    Numero       = facturaDB.InformacionReferencia_Numero,
                    Razon        = facturaDB.InformacionReferencia_Razon,
                    Codigo       = EnumUtils.SetTypeString <NotaCreditoElectronicaInformacionReferenciaCodigo>(facturaDB.InformacionReferencia_Codigo.Value.ToString("00")),
                    FechaEmision = facturaDB.InformacionReferencia_FechaEmision.Value
                }
            };

            DocumentoElectronico = NotaCreditoElectronica;



            requestData = new FacturaRequest()
            {
                clave  = NotaCreditoElectronica.Clave,
                emisor = new FacturaClient()
                {
                    numeroIdentificacion = NotaCreditoElectronica.Emisor.Identificacion.Numero,
                    tipoIdentificacion   = NotaCreditoElectronica.Emisor.Identificacion.Tipo.GetXmlValue()
                },
                fecha = NotaCreditoElectronica.FechaEmision.ToString("yyyy-MM-ddTHH:mm:ss"),
            };

            if (NotaCreditoElectronica.Receptor != null && NotaCreditoElectronica.Receptor.Identificacion != null)
            {
                requestData.receptor = new FacturaClient()
                {
                    tipoIdentificacion   = NotaCreditoElectronica.Receptor.Identificacion.Tipo.GetXmlValue(),
                    numeroIdentificacion = NotaCreditoElectronica.Receptor.Identificacion.Numero,
                };
            }

            return(this);
        }