private void LoadEmisor(ref Factura_Resolucion fac, FacturaElectronica factura) { if (factura.Emisor != null) { EmisorType Emi = factura.Emisor; fac.Emisor_CorreoElectronico = Emi.CorreoElectronico; if (Emi.Identificacion != null) { fac.Emisor_Identificacion_Tipo = Emi.Identificacion.Tipo.GetXmlValue(); fac.Emisor_Identificacion_Numero = Emi.Identificacion.Numero; } fac.Emisor_Nombre = Emi.Nombre; fac.Emisor_NombreComercial = Emi.NombreComercial; if (Emi.Telefono != null) { fac.Emisor_Telefono_Numero = Emi.Telefono.NumTelefono; } } }
public static ResponseType setDocumento(DataTable Fac, DataTable impFactura) { Procesos.responseStatus = ""; DateTime _createdDate; _createdDate = DateTime.Now; Procesos.dateSend = _createdDate; try { int i = 0; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; ServiceClient client = new ServiceClient(); DocumentType oDocument = new DocumentType(); ResponseType oResponse = new ResponseType(); SoftwareSeguridadType oSeguridad = new SoftwareSeguridadType(); oSeguridad.TipoDocumento = Procesos.Buscar_ValorCab("TipoDocumento", i, Fac); oSeguridad.GuidEmpresa = Procesos.Buscar_ValorCab("GuidEmpresa", i, Fac); oSeguridad.GuidOrigen = Procesos.Buscar_ValorCab("GuidOrigen", i, Fac); oSeguridad.HashSeguridad = Procesos.Buscar_ValorCab("HashSeguridad", i, Fac); oSeguridad.ClaveTecnica = Procesos.Buscar_ValorCab("ClaveTecnica", i, Fac); oSeguridad.CodigoErp = Procesos.Buscar_ValorCab("CodigoErp", i, Fac); oSeguridad.NumeroDocumento = Procesos.Buscar_ValorCab("NumeroDocumento", i, Fac); oDocument.SoftwareSeguridad = oSeguridad; EmisorType oEmisor = new EmisorType(); oEmisor.EmiTipoPersona = Convert.ToInt32(Procesos.Buscar_ValorCab("EmiTipoPersona", i, Fac)); oEmisor.EmiTipoIdentificacion = Convert.ToInt32(Procesos.Buscar_ValorCab("EmiTipoIdentificacion", i, Fac)); oEmisor.EmiIdentificacion = Procesos.Buscar_ValorCab("EmiIdentificacion", i, Fac); oEmisor.EmiDVIdentificacion = Procesos.Buscar_ValorCab("EmiDVIdentificacion", i, Fac); oDocument.EmisorData = oEmisor; CompradorType oComprador = new CompradorType(); oComprador.CompradorTipoPersona = Procesos.Buscar_ValorCab("CompradorTipoPersona", i, Fac); oComprador.CompradorTipoIdentificacion = Procesos.Buscar_ValorCab("CompradorTipoIdentificacion", i, Fac); oComprador.CompradorIdentificacion = Procesos.Buscar_ValorCab("CompradorIdentificacion", i, Fac); oComprador.CompradorDVIdentificacion = Procesos.Buscar_ValorCab("CompradorDVIdentificacion", i, Fac); oComprador.CompradorTipoRegimen = Procesos.Buscar_ValorCab("CompradorTipoRegimen", i, Fac); oComprador.CompradorRespFiscal = Procesos.Buscar_ValorCab("CompradorRespFiscal", i, Fac); oComprador.CompradorImpuesto = Procesos.Buscar_ValorCab("CompradorImpuesto", i, Fac); oComprador.CompradorRazonSocial = Procesos.Buscar_ValorCab("CompradorRazonSocial", i, Fac); oComprador.CompradorPrimerNombre = Procesos.Buscar_ValorCab("CompradorPrimerNombre", i, Fac); oComprador.CompradorSegundoNombre = Procesos.Buscar_ValorCab("CompradorSegundoNombre", i, Fac); oComprador.CompradorApellidos = Procesos.Buscar_ValorCab("CompradorApellidos", i, Fac); oComprador.CompradorNombreCompleto = Procesos.Buscar_ValorCab("CompradorNombreCompleto", i, Fac); oComprador.CompradorPais = Procesos.Buscar_ValorCab("CompradorPais", i, Fac); oComprador.CompradorNombrePais = Procesos.Buscar_ValorCab("CompradorNombrePais", i, Fac); oComprador.CompradorDepartamento = Procesos.Buscar_ValorCab("CompradorDepartamento", i, Fac); oComprador.CompradorCodDepartamento = Procesos.Buscar_ValorCab("CompradorCodDepartamento", i, Fac); oComprador.CompradorCiudad = Procesos.Buscar_ValorCab("CompradorCiudad", i, Fac); oComprador.CompradorCodCiudad = Procesos.Buscar_ValorCab("CompradorCodCiudad", i, Fac); oComprador.CompradorCodPostal = Procesos.Buscar_ValorCab("CompradorCodPostal", i, Fac); oComprador.CompradorDireccion = Procesos.Buscar_ValorCab("CompradorDireccion", i, Fac); oComprador.CompradorEnviarCorreo = Convert.ToBoolean(Procesos.Buscar_ValorCab("CompradorEnviarCorreo", i, Fac)); oComprador.CompradorTelefonoCont = Procesos.Buscar_ValorCab("CompradorTelefonoCont", i, Fac); oComprador.CompradorCorreoElectronico = Procesos.Buscar_ValorCab("CompradorCorreoElectronico", i, Fac); oDocument.CompradorFactura = oComprador; EncabezadoType oEncabezado = new EncabezadoType(); oEncabezado.FacTipoFactura = Procesos.Buscar_ValorCab("FacTipoFactura", i, Fac); oEncabezado.FacCodOperacion = Procesos.Buscar_ValorCab("FacCodOperacion", i, Fac); oEncabezado.FacFechaHoraFactura = Procesos.Buscar_ValorCab("FacFechaHoraFactura", i, Fac); oEncabezado.FacFechaIni = Procesos.Buscar_ValorCab("FacFechaIni", i, Fac); oEncabezado.FacFechaFin = Procesos.Buscar_ValorCab("FacFechaFin", i, Fac); oEncabezado.FacRefContigencia = Procesos.Buscar_ValorCab("FacRefContigencia", i, Fac); oEncabezado.FacTipoRefContigencia = Procesos.Buscar_ValorCab("FacTipoRefContigencia", i, Fac); oEncabezado.FacFechaContingencia = Procesos.Buscar_ValorCab("FacFechaContingencia", i, Fac); oDocument.EncabezadoData = oEncabezado; InfoMonetarioType oInfoMoneda = new InfoMonetarioType(); oInfoMoneda.FacCodMoneda = Procesos.Buscar_ValorCab("FacCodMoneda", i, Fac); oInfoMoneda.FacTotalImporteBruto = Procesos.Buscar_ValorCab("FacTotalImporteBruto", i, Fac); oInfoMoneda.FacTotalCargos = Procesos.Buscar_ValorCab("FacTotalCargos", i, Fac); oInfoMoneda.FacTotalDescuentos = Procesos.Buscar_ValorCab("FacTotalDescuentos", i, Fac); oInfoMoneda.FacTotalBaseImponible = Procesos.Buscar_ValorCab("FacTotalBaseImponible", i, Fac); oInfoMoneda.FacTotalBrutoMasImp = Procesos.Buscar_ValorCab("FacTotalBrutoMasImp", i, Fac); oInfoMoneda.FacTotalAnticipos = Procesos.Buscar_ValorCab("FacTotalAnticipos", i, Fac); oInfoMoneda.FacTotalFactura = Procesos.Buscar_ValorCab("FacTotalFactura", i, Fac); oDocument.InfoMonetarioData = oInfoMoneda; FormaPagoType oFormaPago = new FormaPagoType(); oDocument.lsFormaPago = new FormaPagoType[1]; oFormaPago.FacMetodoPago = Procesos.Buscar_ValorCab("FacMetodoPago", i, Fac); oFormaPago.FacFormaPago = Procesos.Buscar_ValorCab("FacFormaPago", i, Fac); oFormaPago.FacVencimientoFac = Procesos.Buscar_ValorCab("FacVencimientoFac", i, Fac); oDocument.lsFormaPago[0] = oFormaPago; i = 0; if (impFactura.Rows.Count > 0) { foreach (DataRow _row in impFactura.Rows) { ImpuestoType oImpuestos = new ImpuestoType(); oDocument.LsImpuestos = new ImpuestoType[impFactura.Rows.Count]; oImpuestos.CodigoImpuesto = Procesos.Buscar_ValorCab("CodigoImpuesto", i, impFactura); oImpuestos.NombreImpuesto = Procesos.Buscar_ValorCab("NombreImpuesto", i, impFactura); oImpuestos.EsRetencionImpuesto = Convert.ToBoolean(Procesos.Buscar_ValorCab("EsRetencionImpuesto", i, impFactura)); oImpuestos.BaseImponible = Procesos.Buscar_ValorCab("BaseImponible", i, impFactura); oImpuestos.Porcentaje = Procesos.Buscar_ValorCab("Porcentaje", i, impFactura); oImpuestos.ValorImpuesto = Procesos.Buscar_ValorCab("ValorImpuesto", i, impFactura); oDocument.LsImpuestos[i] = oImpuestos; i++; } } i = 0; if (Fac.Rows.Count > 0) { foreach (DataRow _row in Fac.Rows) { DetalleType oDetalle = new DetalleType(); oDocument.LsDetalle = new DetalleType[Fac.Rows.Count]; oDetalle.DetFacConsecutivo = Convert.ToInt32(Procesos.Buscar_ValorCab("DetFacConsecutivo", i, Fac)); oDetalle.Codigo = Procesos.Buscar_ValorCab("Codigo", i, Fac); oDetalle.CodigoEstandar = Procesos.Buscar_ValorCab("CodigoEstandar", i, Fac); oDetalle.Codificacion = Procesos.Buscar_ValorCab("Codificacion", i, Fac); oDetalle.Descripcion = Procesos.Buscar_ValorCab("Descripcion", i, Fac); oDetalle.Cantidad = Procesos.Buscar_ValorCab("Cantidad", i, Fac); oDetalle.UnidadMedida = Procesos.Buscar_ValorCab("UnidadMedida", i, Fac); oDetalle.PrecioUnitario = Procesos.Buscar_ValorCab("PrecioUnitario", i, Fac); oDetalle.PrecioSinImpuestos = Procesos.Buscar_ValorCab("PrecioSinImpuestos", i, Fac); oDetalle.PrecioTotal = Procesos.Buscar_ValorCab("PrecioTotal", i, Fac); oDocument.LsDetalle[i] = oDetalle; i++; } } i = 0; if (Fac.Rows.Count > 0) { foreach (DataRow _row in Fac.Rows) { ImpuestoDetalleType oImpuDetalle = new ImpuestoDetalleType(); oDocument.LsDetalleImpuesto = new ImpuestoDetalleType[Fac.Rows.Count]; oImpuDetalle.Secuencia = Convert.ToInt32(Procesos.Buscar_ValorCab("Secuencia", i, Fac)); oImpuDetalle.CodigoImpuesto = Procesos.Buscar_ValorCab("CodigoImpuesto", i, Fac); oImpuDetalle.NombreImpuesto = Procesos.Buscar_ValorCab("NombreImpuesto", i, Fac); oImpuDetalle.EsRetencionImpuesto = Convert.ToBoolean(Procesos.Buscar_ValorCab("EsRetencionImpuesto", i, Fac)); oImpuDetalle.BaseImponible = Procesos.Buscar_ValorCab("BaseImponible", i, Fac); oImpuDetalle.Porcentaje = Procesos.Buscar_ValorCab("Porcentaje", i, Fac); oImpuDetalle.ValorImpuesto = Procesos.Buscar_ValorCab("ValorImpuesto", i, Fac); oDocument.LsDetalleImpuesto[i] = oImpuDetalle; i++; } } i = 0; AutorizacionType oAutorizacion = new AutorizacionType(); oAutorizacion.AutFechaInicio = Procesos.Buscar_ValorCab("AutFechaInicio", i, Fac); oAutorizacion.AutFechaFinal = Procesos.Buscar_ValorCab("AutFechaFinal", i, Fac); oAutorizacion.AutNumAutorizacion = Procesos.Buscar_ValorCab("AutNumAutorizacion", i, Fac); oAutorizacion.AutPrefijo = Procesos.Buscar_ValorCab("AutPrefijo", i, Fac); oAutorizacion.AutSecuenciaInicio = Procesos.Buscar_ValorCab("AutSecuenciaInicio", i, Fac); oAutorizacion.AutSecuenciaFinal = Procesos.Buscar_ValorCab("AutSecuenciaFinal", i, Fac); oDocument.AutorizacionFactura = oAutorizacion; var serxml = new System.Xml.Serialization.XmlSerializer(oDocument.GetType()); var ms = new MemoryStream(); serxml.Serialize(ms, oDocument); string xml = Encoding.UTF8.GetString(ms.ToArray()); Procesos.requestSend = xml; Procesos.EscribirLogFileTXT(xml); oResponse = client.SetDocument(oDocument); client.Close(); return(oResponse); } catch (Exception ex) { Procesos.EscribirLogFileTXT("setDocumento: " + ex.Message); return(null); } }