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); }
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); }
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); }