public List <factura> get_facturas_eventos(DateTime FechaIni, DateTime FechaFin) { tb_Empresa info_empresa = new tb_Empresa(); tb_facturas_eventos info_factura_evento = new tb_facturas_eventos(); decimal? vt_NumFactura = 1; try { using (EntitiesFactElectronica Context_fac = new EntitiesFactElectronica()) { info_empresa = Context_fac.tb_Empresa.Where(v => v.RUC == "0991435786001").FirstOrDefault(); vt_NumFactura = Context_fac.tb_facturas_eventos.Where(v => v.IdEmpresa == info_empresa.IdEmpresa).Max(v => v.NumFactura) + 1; } } catch (Exception) { return(new List <factura>()); } DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); //string sFi, sFf; //sFi = string.Format(formatoFechaDB, Fi); //sFf = string.Format(formatoFechaDB, Ff); try { List <factura> lista = new List <factura>(); using (Entity_eventos context = new Entity_eventos()) { var facturas = context.vwFacturas_fac_electronica.Where(v => v.fecha >= Fi && v.fecha <= Ff && v.estado_aprobacion == "APRO" && v.bd_est == 1); foreach (var item in facturas) { item.nu_ced_clte = item.nu_ced_clte.Trim(); factura myObject = new factura(); myObject.version = "1.1.0"; myObject.id = facturaID.comprobante; myObject.idSpecified = true; infoTributaria info = new infoTributaria(); myObject.infoFactura = new facturaInfoFactura(); myObject.infoFactura.totalConImpuestos = new List <facturaInfoFacturaTotalImpuesto>(); myObject.infoFactura.pagos = new List <pagosPago>(); pagosPago Pago = new pagosPago(); myObject.infoTributaria = info; myObject.detalles = new List <facturaDetalle>(); facturaInfoFacturaTotalImpuesto impuesto = null; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = info_empresa.RazonSocial; myObject.infoTributaria.nombreComercial = info_empresa.NombreComercial; myObject.infoTributaria.ruc = info_empresa.RUC; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; //********************************************************************************* myObject.infoTributaria.codDoc = "01"; myObject.infoTributaria.estab = "001"; myObject.infoTributaria.ptoEmi = "003"; myObject.infoTributaria.secuencial = vt_NumFactura.ToString().PadLeft(9, '0'); myObject.infoTributaria.dirMatriz = info_empresa.DirMatriz; myObject.infoFactura.fechaEmision = string.Format("{0:dd/MM/yyyy}", item.fecha); myObject.infoFactura.dirEstablecimiento = info_empresa.DirMatriz; //if (item.ContribuyenteEspecial == "S") //{ // myObject.infoFactura.contribuyenteEspecial = "1234"; //} myObject.infoFactura.obligadoContabilidadSpecified = true; myObject.infoFactura.obligadoContabilidad = obligadoContabilidad.SI; if (item.nu_ced_clte.Length == 13) { myObject.infoFactura.tipoIdentificacionComprador = "04"; } else { myObject.infoFactura.tipoIdentificacionComprador = "05"; } string nombre = item.nombres.Trim() + " " + item.apellidos.Trim(); myObject.infoFactura.razonSocialComprador = (nombre.ToString().Replace("S.A", "")).Trim(); myObject.infoFactura.identificacionComprador = item.nu_ced_ruc.Trim(); myObject.infoFactura.direccionComprador = item.direccion.Trim(); myObject.infoFactura.totalSinImpuestos = Convert.ToDecimal(item.subtotal); myObject.infoFactura.totalDescuento = Convert.ToDecimal(0.00); //campos de propina myObject.infoFactura.propinaSpecified = true; myObject.infoFactura.propina = 0; //valor total de la factura myObject.infoFactura.importeTotal = Convert.ToDecimal(item.total); myObject.infoFactura.moneda = "DOLAR"; //forma de pago quemada por decisión del cliente, siempre va a usar esta forma de pago Pago.formaPago = "20"; Pago.total = Convert.ToDecimal(item.total); Pago.plazoSpecified = true; Pago.plazo = 0; Pago.unidadTiempo = "Días"; myObject.infoFactura.pagos.Add(Pago); impuesto = new facturaInfoFacturaTotalImpuesto(); impuesto.codigo = "2"; if (item.v_iva == 0) { impuesto.baseImponible = Convert.ToDecimal("0.00"); impuesto.codigoPorcentaje = "1"; } if (item.v_iva > 0) { impuesto.baseImponible = Convert.ToDecimal(item.subtotal); impuesto.codigoPorcentaje = "2"; } impuesto.valor = Convert.ToDecimal(item.v_iva); myObject.infoFactura.totalConImpuestos.Add(impuesto); decimal totalDescuento = 0; impuesto imp = new impuesto(); facturaDetalle fDetalle = new facturaDetalle(); fDetalle.codigoPrincipal = item.cod_evento.ToString(); fDetalle.codigoAuxiliar = item.cod_evento.ToString(); fDetalle.descripcion = item.descrip; fDetalle.cantidad = Convert.ToDecimal(item.cant); fDetalle.precioUnitario = Convert.ToDecimal(item.v_unit); fDetalle.descuento = Convert.ToDecimal("0.00"); totalDescuento = totalDescuento + fDetalle.descuento; fDetalle.precioTotalSinImpuesto = Convert.ToDecimal(item.subtotal); if (item.v_iva > 0) { imp.codigo = "2"; imp.codigoPorcentaje = "2"; imp.tarifa = Convert.ToDecimal(12); imp.baseImponible = Convert.ToDecimal(item.subtotal); imp.valor = Convert.ToDecimal(item.v_iva); } else { imp.codigo = "2"; imp.codigoPorcentaje = "0"; imp.tarifa = Convert.ToDecimal(0); imp.baseImponible = Convert.ToDecimal(item.subtotal); imp.valor = Convert.ToDecimal(item.v_iva); } fDetalle.impuestos = new List <impuesto>(); fDetalle.impuestos.Add(imp); myObject.detalles.Add(fDetalle); myObject.infoFactura.totalDescuento = Math.Round(totalDescuento, 2); // campos adicionales fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (item.email != null) { if (datosAdc.email_bien_escrito(item.email) == true) { myObject.infoAdicional = new List <facturaCampoAdicional>(); facturaCampoAdicional compoadicional = new facturaCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.email; myObject.infoAdicional.Add(compoadicional); } } #region Actualizar try { using (Entity_eventos Context_fac_sis_ext = new Entity_eventos()) { var entity_modificar = Context_fac_sis_ext.Facturas.Where(v => v.cod_evento == item.cod_evento && v.cod_fact == item.cod_fact).FirstOrDefault(); entity_modificar.estado_aprobacion = "GENE"; Context_fac_sis_ext.SaveChanges(); } } catch (Exception) { } #endregion #region Actualizando secuancia try { using (EntitiesFactElectronica Context_fac = new EntitiesFactElectronica()) { var entity_modificar = Context_fac.tb_facturas_eventos.Where(v => v.Evento == item.cod_evento && v.Factura == item.cod_fact).FirstOrDefault(); if (entity_modificar == null) { tb_facturas_eventos evento = new tb_facturas_eventos() { IdEmpresa = info_empresa.IdEmpresa, Establecimiento = "001", Puntoemision = "003", NumFactura = Convert.ToDecimal(vt_NumFactura), Cantidad = item.cant, ValorUnitario = item.v_unit, Subtotal = item.subtotal, Iva = item.v_iva, Total = item.total, Evento = item.cod_evento, Factura = Convert.ToInt32(item.cod_fact), Nombre_Evento = item.descrip }; if (item.nu_ced_ruc.Trim().Contains("9999999999")) { evento.Observacion = item.observacion; } Context_fac.tb_facturas_eventos.Add(evento); Context_fac.SaveChanges(); vt_NumFactura = vt_NumFactura + 1; } else { myObject.infoTributaria.secuencial = entity_modificar.NumFactura.ToString().PadLeft(9, '0'); } } } catch (Exception) { } #endregion lista.Add(myObject); } } return(lista); } catch (Exception ex) { return(new List <factura>()); } }
public List <notaDebito> GenerarXmlNotaDebito(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string FormatoFechaSRI, string formatoFechaDB) { DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); //string sFi, sFf; //sFi = string.Format(formatoFechaDB, Fi); //sFf = string.Format(formatoFechaDB, Ff); try { List <notaDebito> lista = new List <notaDebito>(); using (Entity_conexion_efixed context = new Entity_conexion_efixed()) { var nota_credito = context.vwfe_nota_debito.Where(v => v.no_fecha >= Fi && v.no_fecha <= Ff); foreach (var item in nota_credito) { notaDebito myObject = new notaDebito(); myObject.version = "1.0.0"; myObject.id = new notaDebitoID(); infoTributaria info = new infoTributaria(); myObject.infoNotaDebito = new notaDebitoInfoNotaDebito(); myObject.infoNotaDebito.impuestos = new List <impuesto>(); myObject.infoTributaria = info; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = item.NombreComercial; myObject.infoTributaria.nombreComercial = item.NombreComercial; myObject.infoTributaria.ruc = item.em_ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObject.idSpecified = true; //********************************************************************************* myObject.infoTributaria.codDoc = "05"; myObject.infoTributaria.estab = item.Serie1; myObject.infoTributaria.ptoEmi = item.Serie2; myObject.infoTributaria.secuencial = item.NumNota_Impresa; myObject.infoTributaria.dirMatriz = item.em_direccion; myObject.infoNotaDebito.fechaEmision = string.Format("{0:dd/MM/yyyy}", item.no_fecha); myObject.infoNotaDebito.dirEstablecimiento = item.em_direccion; //if(item.ContribuyenteEspecial=="S") //myObject.infoNotaDebito.contribuyenteEspecial = "00000"; myObject.infoNotaDebito.obligadoContabilidad = obligadoContabilidad.SI.ToString(); myObject.infoNotaDebito.codDocModificado = "01"; myObject.infoNotaDebito.numDocModificado = item.vt_serie1 + "-" + item.vt_serie2 + "-" + item.vt_NumFactura; myObject.infoNotaDebito.fechaEmisionDocSustento = string.Format("{0:dd/MM/yyyy}", item.vt_fecha); if (item.IdTipoDocumento == "RUC") { myObject.infoNotaDebito.tipoIdentificacionComprador = "04"; } if (item.IdTipoDocumento == "PAS") { myObject.infoNotaDebito.tipoIdentificacionComprador = "06"; } if (item.IdTipoDocumento == "CED") { myObject.infoNotaDebito.tipoIdentificacionComprador = "05"; } myObject.infoNotaDebito.razonSocialComprador = item.pe_nombreCompleto.ToString().Replace("S.A", "").Trim(); myObject.infoNotaDebito.identificacionComprador = item.pe_cedulaRuc; myObject.infoNotaDebito.dirEstablecimiento = item.em_direccion; decimal totalSinImpuestos = 0; decimal total = 0; var facturas_imuestos = context.vwfe_nota_debito_impuestos.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdSucursal == item.IdSucursal && v.IdBodega == item.IdBodega && v.IdNota == item.IdNota).ToList(); foreach (var item_imp in facturas_imuestos) { if (item_imp.vt_por_iva > 0) { impuesto impuesto = new impuesto(); impuesto.codigo = "2"; if (item_imp.vt_por_iva == 0) { impuesto.codigoPorcentaje = "1"; } if (item_imp.vt_por_iva == 12) { impuesto.codigoPorcentaje = "2"; } if (item_imp.vt_por_iva == 14) { impuesto.codigoPorcentaje = "3"; } impuesto.tarifa = Convert.ToDecimal(item_imp.vt_por_iva); impuesto.baseImponible = Convert.ToDecimal(item_imp.Base_imponible); totalSinImpuestos = totalSinImpuestos + impuesto.baseImponible; impuesto.valor = Convert.ToDecimal(item_imp.impuesto); total = total + impuesto.baseImponible + impuesto.valor; myObject.infoNotaDebito.impuestos.Add(impuesto); } } myObject.infoNotaDebito.totalSinImpuestos = Convert.ToDecimal(totalSinImpuestos); myObject.infoNotaDebito.valorTotal = total; myObject.motivos = new notaDebitoMotivos(); myObject.motivos.motivo = new List <notaDebitoMotivosMotivo>(); var facturas_detalle = context.vwfe_nota_debito_detalle.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdSucursal == item.IdSucursal && v.IdBodega == item.IdBodega && v.IdNota == item.IdNota && v.sc_total > 0).ToList(); foreach (var item_det in facturas_detalle) { notaDebitoMotivosMotivo motivos = new notaDebitoMotivosMotivo(); motivos.razon = item_det.pr_descripcion; motivos.valor = Convert.ToDecimal(item_det.sc_subtotal); myObject.motivos.motivo.Add(motivos); } fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); myObject.infoAdicional = new List <notaDebitoCampoAdicional>(); if (item.Correo != null) { if (datosAdc.email_bien_escrito(item.Correo) == true) { notaDebitoCampoAdicional compoadicional = new notaDebitoCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.Correo; myObject.infoAdicional.Add(compoadicional); } } if (item.Telefono != null) { notaDebitoCampoAdicional compoadicional = new notaDebitoCampoAdicional(); compoadicional.nombre = "TELEFONO"; compoadicional.Value = item.Telefono; myObject.infoAdicional.Add(compoadicional); } lista.Add(myObject); } } return(lista); } catch (Exception ex) { return(new List <notaDebito>()); } }
List <factura> fx_GeneradorXML_IFacturas_Data.GenerarXmlFactura(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); //string sFi, sFf; //sFi = string.Format(formatoFechaDB, Fi); //sFf = string.Format(formatoFechaDB, Ff); try { List <factura> lista = new List <factura>(); using (Entity_conexion_efixed context = new Entity_conexion_efixed()) { var facturas = context.vwfe_factura.Where(v => v.vt_fecha >= Fi && v.vt_fecha <= Ff); foreach (var item in facturas) { factura myObject = new factura(); myObject.version = "1.1.0"; myObject.id = facturaID.comprobante; myObject.idSpecified = true; infoTributaria info = new infoTributaria(); myObject.infoFactura = new facturaInfoFactura(); myObject.infoFactura.totalConImpuestos = new List <facturaInfoFacturaTotalImpuesto>(); myObject.infoFactura.pagos = new List <pagosPago>(); pagosPago Pago = new pagosPago(); myObject.infoTributaria = info; myObject.detalles = new List <facturaDetalle>(); facturaInfoFacturaTotalImpuesto impuesto = null; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = item.RazonSocial; myObject.infoTributaria.nombreComercial = item.NombreComercial; myObject.infoTributaria.ruc = item.em_ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; //********************************************************************************* myObject.infoTributaria.codDoc = "01"; myObject.infoTributaria.estab = item.vt_serie1; myObject.infoTributaria.ptoEmi = item.vt_serie2; myObject.infoTributaria.secuencial = item.vt_NumFactura; myObject.infoTributaria.dirMatriz = item.em_direccion; myObject.infoFactura.fechaEmision = string.Format("{0:dd/MM/yyyy}", item.vt_fecha); myObject.infoFactura.dirEstablecimiento = item.em_direccion; //if (item.ContribuyenteEspecial == "S") //{ // myObject.infoFactura.contribuyenteEspecial = "1234"; //} myObject.infoFactura.obligadoContabilidadSpecified = true; myObject.infoFactura.obligadoContabilidad = obligadoContabilidad.SI; if (item.IdTipoDocumento == "RUC") { myObject.infoFactura.tipoIdentificacionComprador = "04"; } if (item.IdTipoDocumento == "PAS") { myObject.infoFactura.tipoIdentificacionComprador = "06"; } if (item.IdTipoDocumento == "CED") { myObject.infoFactura.tipoIdentificacionComprador = "05"; } myObject.infoFactura.razonSocialComprador = (item.Nombres.ToString().Replace("S.A", "")).Trim(); myObject.infoFactura.identificacionComprador = item.pe_cedulaRuc; myObject.infoFactura.direccionComprador = item.Direccion; myObject.infoFactura.totalSinImpuestos = Convert.ToDecimal(item.total_sin_impuesto); myObject.infoFactura.totalDescuento = Convert.ToDecimal(item.totalDescuento); //campos de propina myObject.infoFactura.propinaSpecified = true; myObject.infoFactura.propina = 0; //valor total de la factura myObject.infoFactura.importeTotal = Convert.ToDecimal(item.importeTotal); myObject.infoFactura.moneda = "DOLAR"; //forma de pago quemada por decisión del cliente, siempre va a usar esta forma de pago Pago.formaPago = item.IdFormaPago; Pago.total = Convert.ToDecimal(item.importeTotal); Pago.plazoSpecified = true; Pago.plazo = item.Dias_Vct; Pago.unidadTiempo = "Días"; myObject.infoFactura.pagos.Add(Pago); if (item.vt_NumFactura == "000017003") { } var facturas_imuestos = context.vwfe_factura_impuestos.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdSucursal == item.IdSucursal && v.IdBodega == item.IdBodega && v.IdCbteVta == item.IdCbteVta); foreach (var item_imp in facturas_imuestos) { impuesto = new facturaInfoFacturaTotalImpuesto(); impuesto.codigo = "2"; if (item_imp.vt_por_iva == 0) { impuesto.baseImponible = Convert.ToDecimal("0.00"); impuesto.codigoPorcentaje = "1"; } if (item_imp.vt_por_iva == 12) { impuesto.baseImponible = Convert.ToDecimal(item_imp.Base_imponible); impuesto.codigoPorcentaje = "2"; } if (item_imp.vt_por_iva == 14) { impuesto.codigoPorcentaje = "3"; impuesto.baseImponible = Convert.ToDecimal(item_imp.Base_imponible); } impuesto.valor = Convert.ToDecimal(item_imp.impuesto); myObject.infoFactura.totalConImpuestos.Add(impuesto); } var facturas_detalle = context.vwfe_factura_detalle.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdSucursal == item.IdSucursal && v.IdBodega == item.IdBodega && v.IdCbteVta == item.IdCbteVta); decimal totalDescuento = 0; foreach (var item_det in facturas_detalle) { impuesto imp = new impuesto(); facturaDetalle fDetalle = new facturaDetalle(); fDetalle.codigoPrincipal = item_det.pr_codigo; fDetalle.codigoAuxiliar = item_det.pr_codigo; fDetalle.descripcion = item_det.pr_descripcion; fDetalle.cantidad = Convert.ToDecimal(item_det.vt_cantidad); fDetalle.precioUnitario = Convert.ToDecimal(item_det.vt_Precio); fDetalle.descuento = Convert.ToDecimal(Convert.ToDecimal(item_det.vt_cantidad) * item_det.vt_DescUnitario); totalDescuento = totalDescuento + fDetalle.descuento; fDetalle.precioTotalSinImpuesto = Convert.ToDecimal(item_det.vt_Subtotal); if (item_det.vt_por_iva == 12) { imp.codigo = "2"; imp.codigoPorcentaje = "2"; imp.tarifa = Convert.ToDecimal(item_det.vt_por_iva); imp.baseImponible = Convert.ToDecimal(item_det.vt_Subtotal); imp.valor = Convert.ToDecimal(item_det.vt_iva); } if (item_det.vt_por_iva == 14) { imp.codigo = "2"; imp.codigoPorcentaje = "3"; imp.tarifa = Convert.ToDecimal(item_det.vt_por_iva); imp.baseImponible = Convert.ToDecimal(item_det.vt_Subtotal); imp.valor = Convert.ToDecimal(item_det.vt_iva); } if (item_det.vt_por_iva == 0) { imp.codigo = "2"; imp.codigoPorcentaje = "0"; imp.tarifa = Convert.ToDecimal(item_det.vt_por_iva); imp.baseImponible = Convert.ToDecimal(item_det.vt_Subtotal); imp.valor = Convert.ToDecimal(item_det.vt_iva); } fDetalle.impuestos = new List <impuesto>(); fDetalle.impuestos.Add(imp); myObject.detalles.Add(fDetalle); } myObject.infoFactura.totalDescuento = totalDescuento; // campos adicionales fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (item.Correo != null) { if (datosAdc.email_bien_escrito(item.Correo) == true) { myObject.infoAdicional = new List <facturaCampoAdicional>(); facturaCampoAdicional compoadicional = new facturaCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.Correo; myObject.infoAdicional.Add(compoadicional); } } lista.Add(myObject); } var lsr = get_facturas_eventos(FechaIni, FechaFin); if (lsr.Count() != 0) { lista.AddRange(lsr); } } return(lista); } catch (Exception ex) { return(new List <factura>()); } }
List <guiaRemision> fx_GeneradorXML_IGuia.GetGuiaEfixed(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); string sFi, sFf; sFi = string.Format(formatoFechaDB, Fi); sFf = string.Format(formatoFechaDB, Ff); try { List <guiaRemision> lista = new List <guiaRemision>(); using (Entity_conexion_efixed context = new Entity_conexion_efixed()) { var guiaRemisions = context.vwfe_guia_remision.Where(v => v.gi_fecha >= Fi && v.gi_fecha <= Ff).ToList(); foreach (var item in guiaRemisions) { guiaRemision myObject = new guiaRemision(); myObject.version = "1.1.0"; myObject.id = guiaRemisionID.comprobante; infoTributaria info = new infoTributaria(); myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision(); destinatario destinatario = new Info.class_sri.GuiaRemision.destinatario(); myObject.infoTributaria = info; myObject.destinatarios = new guiaRemisionDestinatarios(); info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = item.RazonSocial; myObject.infoTributaria.nombreComercial = item.NombreComercial; myObject.infoTributaria.ruc = item.em_ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; //********************************************************************************* myObject.infoTributaria.codDoc = "06"; myObject.infoTributaria.estab = item.Serie1; myObject.infoTributaria.ptoEmi = item.Serie2; myObject.infoTributaria.secuencial = item.NumGuia_Preimpresa; myObject.infoTributaria.dirMatriz = item.em_direccion; myObject.infoGuiaRemision.dirEstablecimiento = item.em_direccion; myObject.infoGuiaRemision.dirPartida = item.Direccion_Origen; myObject.infoGuiaRemision.razonSocialTransportista = item.Nombre; myObject.infoGuiaRemision.rucTransportista = item.Cedula; myObject.infoGuiaRemision.placa = item.placa; if (item.Cedula.Length == 10) { myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05"; } if (item.Cedula.Length == 13) { myObject.infoGuiaRemision.tipoIdentificacionTransportista = "04"; } myObject.infoGuiaRemision.fechaIniTransporte = string.Format("{0:dd/MM/yyyy}", item.gi_FechaInicioTraslado); myObject.infoGuiaRemision.fechaFinTransporte = string.Format("{0:dd/MM/yyyy}", item.gi_FechaFinTraslado); if (item.ContribuyenteEspecial != "") { myObject.infoGuiaRemision.contribuyenteEspecial = item.ContribuyenteEspecial; } var facturas_x_guias = context.vwfe_guia_remision_x_factura.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdGuiaRemision == item.IdGuiaRemision).ToList(); myObject.destinatarios.destinatario = new List <destinatario>(); destinatario.identificacionDestinatario = item.pe_cedulaRuc; destinatario.razonSocialDestinatario = item.pe_nombreCompleto; destinatario.dirDestinatario = item.Direccion; destinatario.motivoTraslado = item.tr_Descripcion; destinatario.codEstabDestino = "001"; destinatario.ruta = item.ruta == "" ? "S/N" : item.ruta; foreach (var item_fac in facturas_x_guias) { destinatario.codDocSustento = "01"; destinatario.numDocSustento = item.vt_serie1 + "-" + item_fac.vt_serie2 + "-" + item_fac.vt_NumFactura; if (item_fac.vt_autorizacion != null) { if (item_fac.vt_autorizacion.Length > 10) { destinatario.numAutDocSustento = item_fac.vt_autorizacion.Substring(0, 10); } } destinatario.fechaEmisionDocSustento = string.Format("{0:dd/MM/yyyy}", item.gi_fecha); } myObject.destinatarios.destinatario.Add(destinatario); var guia_detalle = context.vwfe_guia_remision_detalle.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdGuiaRemision == item.IdGuiaRemision).ToList(); destinatario.detalles = new destinatarioDetalles(); destinatario.detalles.detalle = new List <detalle>(); foreach (var item_det in guia_detalle) { destinatario.detalles.detalle.Add(new detalle { codigoAdicional = item_det.pr_codigo, codigoInterno = item_det.pr_codigo, descripcion = item_det.pr_descripcion, cantidad = Convert.ToDecimal(item_det.gi_cantidad), }); } // campos adicionales fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (item.Correo != null && item.Correo != "") { if (myObject.infoAdicional == null) { myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); } guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.Correo; myObject.infoAdicional.Add(compoadicional); } if (item.Telefono != null && item.Telefono != "") { if (myObject.infoAdicional == null) { myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); } guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "TELEFONO"; compoadicional.Value = item.Telefono; myObject.infoAdicional.Add(compoadicional); } lista.Add(myObject); } } return(lista); } catch (Exception ex) { return(new List <guiaRemision>()); } }
List <guiaRemision> fx_GeneradorXML_IGuia.GetGuiaLogistica(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); string sFi, sFf; sFi = string.Format(formatoFechaDB, Fi); sFf = string.Format(formatoFechaDB, Ff); try { List <guiaRemision> lista = new List <guiaRemision>(); using (SqlConnection conexion = new SqlConnection(ConexionDBCliente)) { conexion.Open(); string sqlcabFact = "SELECT gui.IdGuia, gui.IdEmpacadora, gui.IdVehiculo, gui.IdChofer, gui.IdPlanificacion,cast( gui.Fecha as date)Fecha, gui.Hora, cat_ori.Descripcion AS cat_ori, cat_des.Descripcion AS cat_des, gui.CodDocumentoTipo, gui.Establecimiento, " + " gui.PuntoEmision, gui.NumDocumento, gui.Observacion, gui.CapacidadLibrasTotal, gui.CapacidadLibrasProg, gui.CapacidadBines, gui.ValorFlete, gui.ValorPorLibra, gui.ValorAFacturar, emp.Descripcion AS emp, " + " emp.Direccion AS dir_emp, veh.Placa, chof.pe_cedulaRuc AS CedRucChof, chof.pe_nombreCompleto AS Chofer, dbo.tb_persona.pe_cedulaRuc AS CedRuccli, dbo.tb_persona.pe_direccion AS DirCli, " + " dbo.tb_persona.pe_nombreCompleto AS RazSocCli, em_ruc, RazonSocial, em_direccion,cat_tipo.Descripcion " + " FROM Logistica.lo_Guia AS gui INNER JOIN " + " Logistica.lo_Empacadora AS emp ON gui.IdEmpacadora = emp.IdEmpacadora INNER JOIN " + " Logistica.lo_chofer AS chof ON gui.IdChofer = chof.IdChofer INNER JOIN " + " Logistica.lo_vehiculo AS veh ON gui.IdVehiculo = veh.IdVehiculo INNER JOIN " + " Logistica.lo_catalogo AS cat_ori ON gui.IdCatalogoOrigen = cat_ori.IdCatalogo INNER JOIN " + " Logistica.lo_catalogo AS cat_des ON gui.IdCatalogoDestino = cat_des.IdCatalogo INNER JOIN " + " dbo.fa_cliente ON emp.IdEmpresa = dbo.fa_cliente.IdEmpresa AND emp.IdCliente = dbo.fa_cliente.IdCliente INNER JOIN " + " dbo.tb_persona ON dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND " + " dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona INNER JOIN " + " dbo.tb_empresa ON emp.IdEmpresa = dbo.tb_empresa.IdEmpresa INNER JOIN " + " Logistica.lo_catalogo AS cat_tipo ON gui.IdCatalogoTipoGuia = cat_tipo.IdCatalogo AND gui.IdCatalogoTipoGuia = cat_tipo.IdCatalogo " + " where Fecha between datefromparts(" + FechaIni.Year.ToString() + "," + FechaIni.Month.ToString() + "," + FechaIni.Day.ToString() + ") and datefromparts(" + FechaFin.Year.ToString() + "," + FechaFin.Month.ToString() + "," + FechaFin.Day.ToString() + ") and generado is null"; SqlCommand cmd_cab = new SqlCommand(sqlcabFact, conexion); SqlDataReader dtr_cab = cmd_cab.ExecuteReader(); while (dtr_cab.Read()) { #region cabecera guia decimal IdGuia = Convert.ToDecimal(dtr_cab.GetValue(0)); guiaRemision myObject = new guiaRemision(); myObject.version = "1.1.0"; myObject.id = guiaRemisionID.comprobante; infoTributaria info = new infoTributaria(); myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision(); destinatario destinatario = new Info.class_sri.GuiaRemision.destinatario(); myObject.infoTributaria = info; myObject.destinatarios = new guiaRemisionDestinatarios(); info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = dtr_cab.GetValue(29).ToString(); myObject.infoTributaria.nombreComercial = dtr_cab.GetValue(29).ToString(); myObject.infoTributaria.ruc = dtr_cab.GetValue(28).ToString(); myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; //********************************************************************************* myObject.infoTributaria.codDoc = "06"; myObject.infoTributaria.estab = dtr_cab.GetValue(10).ToString(); myObject.infoTributaria.ptoEmi = dtr_cab.GetValue(11).ToString(); myObject.infoTributaria.secuencial = dtr_cab.GetValue(12).ToString(); myObject.infoTributaria.dirMatriz = dtr_cab.GetValue(30).ToString(); myObject.infoGuiaRemision.dirEstablecimiento = dtr_cab.GetValue(30).ToString(); myObject.infoGuiaRemision.dirPartida = dtr_cab.GetValue(7).ToString(); myObject.infoGuiaRemision.razonSocialTransportista = dtr_cab.GetValue(24).ToString(); myObject.infoGuiaRemision.rucTransportista = dtr_cab.GetValue(23).ToString(); myObject.infoGuiaRemision.placa = dtr_cab.GetValue(11).ToString(); if (dtr_cab.GetValue(23).ToString().Length == 10) { myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05"; } if (dtr_cab.GetValue(23).ToString().Length == 13) { myObject.infoGuiaRemision.tipoIdentificacionTransportista = "04"; } DateTime fecha = Convert.ToDateTime(dtr_cab.GetValue(5)); string Fe = fecha.Day.ToString().PadLeft(2, '0') + "/" + fecha.Month.ToString().PadLeft(2, '0') + "/" + fecha.Year.ToString(); myObject.infoGuiaRemision.fechaIniTransporte = string.Format(FormatoFechaSRI, Fe); myObject.infoGuiaRemision.fechaFinTransporte = string.Format(FormatoFechaSRI, Fe); //if (item.ContribuyenteEspecial != "") // myObject.infoGuiaRemision.contribuyenteEspecial = item.ContribuyenteEspecial; myObject.destinatarios.destinatario = new List <destinatario>(); destinatario.identificacionDestinatario = dtr_cab.GetValue(25).ToString(); destinatario.razonSocialDestinatario = dtr_cab.GetValue(27).ToString(); destinatario.dirDestinatario = dtr_cab.GetValue(26).ToString(); destinatario.motivoTraslado = dtr_cab.GetValue(31).ToString(); destinatario.codEstabDestino = "001"; destinatario.ruta = "S/N"; myObject.destinatarios.destinatario.Add(destinatario); #endregion #region detalle guia string sql_detalle = "SELECT Logistica.lo_GuiaDet.IdGuiaDet, Logistica.lo_GuiaDet.IdGuia, Logistica.lo_GuiaDet.IdRecurso, Logistica.lo_GuiaDet.Cantidad, Logistica.lo_recurso.NomRecurso, Logistica.lo_recurso.ControlaSerie, " + "Logistica.lo_recurso.ControlaKardex, Logistica.lo_recurso.CantidadPorDefecto " + "FROM Logistica.lo_GuiaDet INNER JOIN " + "Logistica.lo_recurso ON Logistica.lo_GuiaDet.IdRecurso = Logistica.lo_recurso.IdRecurso" + " where Logistica.lo_GuiaDet.IdGuia=" + IdGuia + ""; destinatario.detalles = new destinatarioDetalles(); destinatario.detalles.detalle = new List <detalle>(); using (SqlConnection conexion2 = new SqlConnection(ConexionDBCliente)) { conexion2.Open(); SqlCommand cmd_det = new SqlCommand(sql_detalle, conexion2); SqlDataReader dtr_det = cmd_det.ExecuteReader(); while (dtr_det.Read()) { destinatario.detalles.detalle.Add(new detalle { codigoAdicional = dtr_det.GetValue(2).ToString(), codigoInterno = dtr_det.GetValue(2).ToString(), descripcion = dtr_det.GetValue(4).ToString(), cantidad = Convert.ToDecimal(dtr_det.GetValue(3).ToString()), }); } } #endregion lista.Add(myObject); #region actaulizar a registro generado string sqlUpdate = "update Logistica.lo_Guia set generado=1 where IdGuia=" + IdGuia + ""; using (SqlConnection conexion3 = new SqlConnection(ConexionDBCliente)) { conexion3.Open(); SqlCommand cmdupdate = new SqlCommand(sqlUpdate, conexion3); SqlDataReader dtrupdate = cmdupdate.ExecuteReader(); } #endregion } } return(lista); } catch (Exception ex) { return(new List <guiaRemision>()); } }
List <liquidacionCompra> fx_GeneradorXML_ILiquidacionComp_Data.GenerarXmlFactura(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); //string sFi, sFf; //sFi = string.Format(formatoFechaDB, Fi); //sFf = string.Format(formatoFechaDB, Ff); try { List <liquidacionCompra> lista = new List <liquidacionCompra>(); using (Entity_conexion_efixed context = new Entity_conexion_efixed()) { var liquidacion_og = context.vwfe_liquidacion_compra.Where(v => v.co_FechaFactura >= Fi && v.co_FechaFactura <= Ff); foreach (var item in liquidacion_og) { liquidacionCompra myObject = new liquidacionCompra(); myObject.version = "1.1.0"; myObject.id = liquidacionCompraID.comprobante; myObject.idSpecified = true; infoTributaria info = new infoTributaria(); myObject.infoLiquidacionCompra = new liquidacionCompraInfoLiquidacionCompra(); myObject.infoLiquidacionCompra.totalConImpuestos = new List <liquidacionCompraInfoLiquidacionCompraTotalImpuesto>(); myObject.infoLiquidacionCompra.pagos = new List <pagosPago>(); pagosPago Pago = new pagosPago(); myObject.infoTributaria = info; myObject.detalles = new List <liquidacionCompraDetalle>(); liquidacionCompraInfoLiquidacionCompraTotalImpuesto impuesto = null; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = item.RazonSocial; myObject.infoTributaria.nombreComercial = item.NombreComercial; myObject.infoTributaria.ruc = item.em_ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; //********************************************************************************* myObject.infoTributaria.codDoc = "03"; myObject.infoTributaria.estab = item.co_serie.Substring(0, 3); myObject.infoTributaria.ptoEmi = item.co_serie.Substring(4, 3); myObject.infoTributaria.secuencial = item.co_factura; myObject.infoTributaria.dirMatriz = item.em_direccion; myObject.infoLiquidacionCompra.fechaEmision = string.Format("{0:dd/MM/yyyy}", item.co_FechaFactura); myObject.infoLiquidacionCompra.dirEstablecimiento = item.em_direccion; if (item.ContribuyenteEspecial != "") { // myObject.infoLiquidacionCompra.contribuyenteEspecial = item.ContribuyenteEspecial; } myObject.infoLiquidacionCompra.obligadoContabilidadSpecified = true; myObject.infoLiquidacionCompra.obligadoContabilidad = obligadoContabilidad.SI; if (item.IdTipoDocumento == "RUC") { myObject.infoLiquidacionCompra.tipoIdentificacionProveedor = "04"; } if (item.IdTipoDocumento == "PAS") { myObject.infoLiquidacionCompra.tipoIdentificacionProveedor = "06"; } if (item.IdTipoDocumento == "CED") { myObject.infoLiquidacionCompra.tipoIdentificacionProveedor = "05"; } myObject.infoLiquidacionCompra.identificacionProveedor = item.pe_cedulaRuc; myObject.infoLiquidacionCompra.razonSocialProveedor = (item.pe_nombreCompleto.ToString()).Trim(); myObject.infoLiquidacionCompra.identificacionProveedor = item.pe_cedulaRuc; myObject.infoLiquidacionCompra.direccionProveedor = item.pe_direccion; myObject.infoLiquidacionCompra.totalSinImpuestos = Convert.ToDecimal(item.co_subtotal_iva + item.co_subtotal_siniva); //valor total de la factura myObject.infoLiquidacionCompra.importeTotal = Convert.ToDecimal(item.co_total); myObject.infoLiquidacionCompra.moneda = "DOLAR"; //forma de pago quemada por decisión del cliente, siempre va a usar esta forma de pago Pago.formaPago = "20"; Pago.total = Convert.ToDecimal(item.co_total); Pago.plazoSpecified = true; Pago.plazo = item.co_plazo; Pago.unidadTiempo = "Días"; myObject.infoLiquidacionCompra.pagos.Add(Pago); if (item.co_subtotal_siniva != 0) { myObject.infoLiquidacionCompra.totalConImpuestos.Add( new liquidacionCompraInfoLiquidacionCompraTotalImpuesto { codigo = "2", baseImponible = Convert.ToDecimal(item.co_subtotal_iva), codigoPorcentaje = "1", valor = Convert.ToDecimal(item.co_valoriva) }); } if (item.co_subtotal_iva != 0) { myObject.infoLiquidacionCompra.totalConImpuestos.Add( new liquidacionCompraInfoLiquidacionCompraTotalImpuesto { codigo = "2", baseImponible = Convert.ToDecimal(item.co_subtotal_iva), codigoPorcentaje = "2", valor = Convert.ToDecimal(item.co_valoriva) }); } var facturas_detalle = context.vwfe_liquidacion_compra_det.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdTipoCbte_Ogiro == item.IdTipoCbte_Ogiro && v.IdCbteCble_Ogiro == item.IdCbteCble_Ogiro && v.IdSucursal == item.IdSucursal && v.IdBodega == item.IdBodega ); decimal totalDescuento = 0; foreach (var item_det in facturas_detalle) { impuesto imp = new impuesto(); liquidacionCompraDetalle fDetalle = new liquidacionCompraDetalle(); fDetalle.codigoPrincipal = item_det.pr_codigo; fDetalle.codigoAuxiliar = item_det.pr_codigo; fDetalle.descripcion = item_det.pr_descripcion; fDetalle.cantidad = Convert.ToDecimal(item_det.Cantidad); fDetalle.precioUnitario = Convert.ToDecimal(item_det.CostoUni); fDetalle.descuento = Convert.ToDecimal(Convert.ToDouble(item_det.Cantidad) * item_det.DescuentoUni); totalDescuento = totalDescuento + fDetalle.descuento; fDetalle.precioTotalSinImpuesto = Convert.ToDecimal(item_det.Subtotal); if (item_det.PorIva == 12) { imp.codigo = "2"; imp.codigoPorcentaje = "2"; imp.tarifa = Convert.ToDecimal(item_det.PorIva); imp.baseImponible = Convert.ToDecimal(item_det.Subtotal); imp.valor = Convert.ToDecimal(item_det.ValorIva); } if (item_det.PorIva == 0) { imp.codigo = "2"; imp.codigoPorcentaje = "0"; imp.tarifa = Convert.ToDecimal(item_det.PorIva); imp.baseImponible = Convert.ToDecimal(item_det.Subtotal); imp.valor = Convert.ToDecimal(item_det.ValorIva); } fDetalle.impuestos = new List <impuesto>(); fDetalle.impuestos.Add(imp); myObject.detalles.Add(fDetalle); } myObject.infoLiquidacionCompra.totalDescuento = Convert.ToDecimal(totalDescuento); myObject.infoLiquidacionCompra.totalDescuento = totalDescuento; // campos adicionales fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (item.pe_correo != null && item.pe_correo != "") { if (myObject.infoAdicional == null) { myObject.infoAdicional = new List <liquidacionCompraCampoAdicional>(); } liquidacionCompraCampoAdicional compoadicional = new liquidacionCompraCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.pe_correo; myObject.infoAdicional.Add(compoadicional); } if (item.co_observacion != null && item.co_observacion != "") { if (myObject.infoAdicional == null) { myObject.infoAdicional = new List <liquidacionCompraCampoAdicional>(); } liquidacionCompraCampoAdicional compoadicional = new liquidacionCompraCampoAdicional(); compoadicional.nombre = "NOTA: "; compoadicional.Value = item.co_observacion; myObject.infoAdicional.Add(compoadicional); } lista.Add(myObject); } } return(lista); } catch (Exception ex) { return(new List <liquidacionCompra>()); } }
public List <notaCredito> GenerarXmlNotaCredito(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); //string sFi, sFf; //sFi = string.Format(formatoFechaDB, Fi); //sFf = string.Format(formatoFechaDB, Ff); try { List <notaCredito> lista = new List <notaCredito>(); using (Entity_conexion_efixed context = new Entity_conexion_efixed()) { var nota_credito = context.vwfe_nota_credito.Where(v => v.no_fecha >= Fi && v.no_fecha <= Ff); foreach (var item in nota_credito) { notaCredito myObject = new notaCredito(); totalConImpuestosTotalImpuesto impuesto = null; myObject.version = "1.1.0"; myObject.id = new notaCreditoID(); infoTributaria info = new infoTributaria(); myObject.infoNotaCredito = new notaCreditoInfoNotaCredito(); myObject.infoNotaCredito.totalConImpuestos = new List <totalConImpuestosTotalImpuesto>(); myObject.infoTributaria = info; myObject.detalles = new List <notaCreditoDetalle>(); info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = item.NombreComercial.Trim().ToString().Replace("S.A", "");; myObject.infoTributaria.nombreComercial = item.NombreComercial.Trim().ToString().Replace("S.A", "");; myObject.infoTributaria.ruc = item.em_ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; //********************************************************************************* myObject.infoTributaria.codDoc = "04"; myObject.infoTributaria.estab = item.Serie1; myObject.infoTributaria.ptoEmi = item.Serie2; myObject.infoTributaria.secuencial = item.NumNota_Impresa; myObject.infoTributaria.dirMatriz = item.em_direccion; myObject.infoNotaCredito.fechaEmision = string.Format("{0:dd/MM/yyyy}", item.no_fecha); myObject.infoNotaCredito.dirEstablecimiento = item.em_direccion; if (item.ContribuyenteEspecial != "") { myObject.infoNotaCredito.contribuyenteEspecial = item.ContribuyenteEspecial; } myObject.infoNotaCredito.obligadoContabilidad = obligadoContabilidad.SI.ToString(); myObject.infoNotaCredito.codDocModificado = "01"; myObject.infoNotaCredito.numDocModificado = item.vt_serie1 + "-" + item.vt_serie2 + "-" + item.vt_NumFactura; myObject.infoNotaCredito.fechaEmisionDocSustento = string.Format("{0:dd/MM/yyyy}", item.vt_fecha); myObject.infoNotaCredito.motivo = item.sc_observacion; if (item.IdTipoDocumento == "RUC") { myObject.infoNotaCredito.tipoIdentificacionComprador = "04"; } if (item.IdTipoDocumento == "PAS") { myObject.infoNotaCredito.tipoIdentificacionComprador = "06"; } if (item.IdTipoDocumento == "CED") { myObject.infoNotaCredito.tipoIdentificacionComprador = "05"; } myObject.infoNotaCredito.razonSocialComprador = item.pe_nombreCompleto.ToString().Trim(); myObject.infoNotaCredito.identificacionComprador = item.pe_cedulaRuc; myObject.infoNotaCredito.dirEstablecimiento = item.em_direccion; myObject.infoNotaCredito.totalSinImpuestos = Convert.ToDecimal(item.total_sin_impuesto); myObject.infoNotaCredito.valorModificacion = Convert.ToDecimal(item.importeTotal); //valor total de la factura myObject.infoNotaCredito.valorModificacion = Convert.ToDecimal(item.importeTotal); myObject.infoNotaCredito.moneda = "DOLAR"; var facturas_imuestos = context.vwfe_nota_credito_impuestos.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdSucursal == item.IdSucursal && v.IdBodega == item.IdBodega && v.IdNota == item.IdNota).ToList(); foreach (var item_imp in facturas_imuestos) { impuesto = new totalConImpuestosTotalImpuesto(); impuesto.codigo = "2"; if (item_imp.vt_por_iva == 0) { impuesto.codigoPorcentaje = "0"; } if (item_imp.vt_por_iva == 12) { impuesto.codigoPorcentaje = "2"; } if (item_imp.vt_por_iva == 14) { impuesto.codigoPorcentaje = "3"; } impuesto.baseImponible = Convert.ToDecimal(item_imp.Base_imponible); impuesto.valor = Convert.ToDecimal(item_imp.impuesto); myObject.infoNotaCredito.totalConImpuestos.Add(impuesto); } var facturas_detalle = context.vwfe_nota_credito_detalle.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdSucursal == item.IdSucursal && v.IdBodega == item.IdBodega && v.IdNota == item.IdNota).ToList(); foreach (var item_det in facturas_detalle) { impuesto imp = new impuesto(); notaCreditoDetalle fDetalle = new notaCreditoDetalle(); fDetalle.codigoInterno = item_det.pr_codigo; fDetalle.codigoAdicional = item_det.pr_codigo; fDetalle.descripcion = item_det.pr_descripcion; fDetalle.cantidad = Convert.ToDecimal(item_det.sc_cantidad); fDetalle.precioUnitario = Convert.ToDecimal(item_det.sc_Precio); fDetalle.descuento = Convert.ToDecimal(item_det.sc_descUni * Convert.ToDecimal(item_det.sc_cantidad)); fDetalle.descuentoSpecified = true; fDetalle.precioTotalSinImpuesto = Convert.ToDecimal(item_det.sc_subtotal); if (item_det.sc_observacion != null && item_det.sc_observacion != "") { fDetalle.detallesAdicionales = new List <notaCreditoDetalleDetAdicional>(); fDetalle.detallesAdicionales.Add(new notaCreditoDetalleDetAdicional { nombre = "Detalle", valor = item_det.sc_observacion } ); } if (item_det.vt_por_iva == 12) { imp.codigo = "2"; imp.codigoPorcentaje = "2"; imp.tarifa = Convert.ToDecimal(item_det.vt_por_iva); imp.baseImponible = Convert.ToDecimal(item_det.sc_subtotal); imp.valor = Convert.ToDecimal(item_det.sc_iva); } if (item_det.vt_por_iva == 14) { imp.codigo = "2"; imp.codigoPorcentaje = "3"; imp.tarifa = Convert.ToDecimal(item_det.vt_por_iva); imp.baseImponible = Convert.ToDecimal(item_det.sc_subtotal); imp.valor = Convert.ToDecimal(item_det.sc_iva); } if (item_det.vt_por_iva == 0) { imp.codigo = "2"; imp.codigoPorcentaje = "0"; imp.tarifa = Convert.ToDecimal(item_det.vt_por_iva); imp.baseImponible = Convert.ToDecimal(item_det.sc_subtotal); imp.valor = Convert.ToDecimal(item_det.sc_iva); } fDetalle.impuestos = new List <impuesto>(); fDetalle.impuestos.Add(imp); myObject.detalles.Add(fDetalle); } // campos adicionales fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (item.Correo != null && item.Correo != "") { if (myObject.infoAdicional == null) { myObject.infoAdicional = new List <notaCreditoCampoAdicional>(); } notaCreditoCampoAdicional compoadicional = new notaCreditoCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.Correo; myObject.infoAdicional.Add(compoadicional); } lista.Add(myObject); } } return(lista); } catch (Exception ex) { return(new List <notaCredito>()); } }
private List <guiaRemision> Get_Xml_Guia_x_Traspaso(int IdEmpresa, decimal IdGuia) { try { tb_Bodega_Bus Bus_Bodega = new tb_Bodega_Bus(); tb_Bodega_Info Info_Bodega = new tb_Bodega_Info(); in_Guia_x_traspaso_bodega_Info Info_Guia = new in_Guia_x_traspaso_bodega_Info(); Info_Guia = Get_Info_x_in_Guia(IdEmpresa, IdGuia); Info_Bodega = Bus_Bodega.Get_Info_Bodega(IdEmpresa, Convert.ToInt32(Info_Guia.IdSucursal_Partida), 1); List <guiaRemision> listaaux = new List <guiaRemision>(); List <guiaRemision> lista = new List <guiaRemision>(); guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios(); guiaRemision myObject = new guiaRemision(); myObject.destinatarios = destinatarios; destinatarios.destinatario = new List <destinatario>(); destinatario destinatari = new destinatario(); destinatarioDetalles destinatariodet = new destinatarioDetalles(); destinatari.detalles = destinatariodet; destinatari.detalles.detalle = new List <detalle>(); string correo = ""; string format = "dd/MM/yyyy"; myObject.id = guiaRemisionID.comprobante; myObject.version = "1.1.0"; myObject.id = guiaRemisionID.comprobante; infoTributaria info = new infoTributaria(); myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision(); //información tributaria myObject.infoTributaria = info; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = string.IsNullOrEmpty(Info_Guia.razon_social_empresa)?"": Info_Guia.razon_social_empresa.Trim(); myObject.infoTributaria.nombreComercial = string.IsNullOrEmpty(Info_Guia.nom_comercial_empresa)?"": Info_Guia.nom_comercial_empresa.Trim(); myObject.infoTributaria.ruc = Info_Guia.ruc_empresa; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObject.infoTributaria.codDoc = "06"; myObject.infoTributaria.estab = Convert.ToString(Info_Guia.IdEstablecimiento); myObject.infoTributaria.ptoEmi = Info_Guia.IdPuntoEmision; myObject.infoTributaria.secuencial = Info_Guia.NumDocumento_Guia; myObject.infoTributaria.dirMatriz = string.IsNullOrEmpty(Info_Guia.direc_empresa)?"": Info_Guia.direc_empresa.Trim(); //datos de la guía de remisión myObject.infoGuiaRemision.dirEstablecimiento = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim(); myObject.infoGuiaRemision.dirPartida = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim(); myObject.infoGuiaRemision.razonSocialTransportista = string.IsNullOrEmpty(Info_Guia.nom_transportista) ? "" : Info_Guia.nom_transportista.Trim(); myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05"; myObject.infoGuiaRemision.rucTransportista = Info_Guia.ced_transportista; myObject.infoGuiaRemision.placa = Info_Guia.Placa; // myObject.infoGuiaRemision.obligadoContabilidad = (Info_Guia.obligado_conta_empresa == "SI" || Info_Guia.obligado_conta_empresa=="S") ?"S":"N"; // myObject.infoGuiaRemision.contribuyenteEspecial = Info_Guia.contrib_especial_empresa; myObject.infoGuiaRemision.fechaIniTransporte = Convert.ToDateTime(Info_Guia.Fecha_Traslado).ToString(format); myObject.infoGuiaRemision.fechaFinTransporte = Convert.ToDateTime(Info_Guia.Fecha_llegada).ToString(format); //datos del destinatario destinatari.identificacionDestinatario = Info_Guia.IdentificacionDestinatario; destinatari.razonSocialDestinatario = string.IsNullOrEmpty(Info_Guia.NombreDestinatario) ? "" : Info_Guia.NombreDestinatario.Trim(); destinatari.dirDestinatario = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada) ? "" : Info_Guia.Direc_sucu_Llegada.Trim(); destinatari.motivoTraslado = string.IsNullOrEmpty(Info_Guia.nom_Motivo_Traslado)?"": Info_Guia.nom_Motivo_Traslado.Trim(); //destinatari.ruta = ""; //destinatari.detalles.detalle //myObject.infoGuiaRemision //para extraer el detalle de la hoja, multiples lineas de producto in_Guia_x_traspaso_bodega_det_Bus BusDetalle_Guia = new in_Guia_x_traspaso_bodega_det_Bus(); List <in_Guia_x_traspaso_bodega_det_Info> ListInfoDetalle_Guia = new List <in_Guia_x_traspaso_bodega_det_Info>(); ListInfoDetalle_Guia = BusDetalle_Guia.Get_List_Guia_x_traspaso_bodega_x_OC_det(IdEmpresa, IdGuia); //if (ListInfoDetalle_Guia.Count() > 0) //{ foreach (var item in ListInfoDetalle_Guia) { detalle det = new detalle(); det.codigoInterno = item.IdProducto.ToString(); det.codigoAdicional = item.pr_codigo; det.descripcion = item.nom_producto.Trim() + (item.obs_OCompra == null ? "" : item.obs_OCompra.Trim()) + "(OC#" + item.IdOrdenCompra + ")"; det.cantidad = Convert.ToDecimal(item.Cantidad_enviar); destinatari.detalles.detalle.Add(det); } //} //else //{ in_Guia_x_traspaso_bodega_det_sin_oc_Bus BusDetalle_Guia_SOC = new in_Guia_x_traspaso_bodega_det_sin_oc_Bus(); List <in_Guia_x_traspaso_bodega_det_sin_oc_Info> ListInfoDetalle_Guia_SOC = new List <in_Guia_x_traspaso_bodega_det_sin_oc_Info>(); ListInfoDetalle_Guia_SOC = BusDetalle_Guia_SOC.Get_List_Guia_x_traspaso_bodega_det_sin_oc(IdEmpresa, IdGuia); foreach (var item in ListInfoDetalle_Guia_SOC) { detalle det = new detalle(); det.codigoInterno = (item.IdProducto == null) ? item.Num_Fact : Convert.ToDecimal(item.IdProducto).ToString(); det.codigoAdicional = item.Num_Fact; det.descripcion = item.nom_producto.Trim() + (item.observacion == null ? "" : item.observacion.Trim()) + "(Prove:" + item.nom_proveedor + ")"; det.cantidad = Convert.ToDecimal(item.Cantidad_enviar); destinatari.detalles.detalle.Add(det); } //} //campos adicionales guía de remisión guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional(); Cl_ValidarEmail_Info datosAdc = new Cl_ValidarEmail_Info(); if (datosAdc.email_bien_escrito(correo) == true) { compoadicional.nombre = "MAIL"; compoadicional.Value = correo; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } //punto de llegada if (Info_Guia.Direc_sucu_Llegada != "") //(dtrcabGuiaRe.IsDBNull(27) == false) { compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "DESTINO"; compoadicional.Value = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada)?"": Info_Guia.Direc_sucu_Llegada; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } destinatarios.destinatario.Add(destinatari); lista.Add(myObject); return(lista);; } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex) { EntityType = typeof(in_Guia_x_traspaso_bodega_Bus) }; } }
public List <Info.class_sri.GuiaRemision.guiaRemision> GenerarXmlGuiaRemision(List <vwprd_Guia_Remision_Electronica_Info> LstGuia_Remision_Electronica_Info) { try { char pad_Cero = '0'; List <guiaRemision> listaaux = new List <guiaRemision>(); List <guiaRemision> lista = new List <guiaRemision>(); guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios(); guiaRemision myObject = new guiaRemision(); myObject.destinatarios = destinatarios; destinatarios.destinatario = new List <destinatario>(); destinatario destinatari = new destinatario(); destinatarioDetalles destinatariodet = new destinatarioDetalles(); destinatari.detalles = destinatariodet; destinatari.detalles.detalle = new List <detalle>(); int cont = 0; string correo = ""; foreach (var item in LstGuia_Remision_Electronica_Info) { if (cont == 0) { cont = 1; myObject.id = guiaRemisionID.comprobante; myObject.version = "1.1.0"; myObject.id = guiaRemisionID.comprobante; infoTributaria info = new infoTributaria(); myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision(); // myObject.destinatarios = new guiaRemisionDestinatarios(); //información tributaria myObject.infoTributaria = info; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = item.RazonSocial; myObject.infoTributaria.nombreComercial = item.NombreComercial; myObject.infoTributaria.ruc = item.em_ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObject.infoTributaria.codDoc = item.CodDocumentoTipo; myObject.infoTributaria.estab = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero); //dtrcabGuiaRe.GetString(1).Substring(0, 3);//001 x tener una sola sucursale - coger codigo tb_sucursal myObject.infoTributaria.ptoEmi = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero); //dtrcabGuiaRe.GetString(1).Substring(3, 3);//001 x tener una sola punto de venta o caja myObject.infoTributaria.secuencial = Convert.ToString(item.IdGuiaRemision).PadLeft(9, pad_Cero); // dtrcabGuiaRe.GetString(1).Substring(6, 9); myObject.infoTributaria.dirMatriz = item.em_direccion; //dtrcabGuiaRe.GetString(6);//tb_empresa //datos de la guía de remisión myObject.infoGuiaRemision.dirEstablecimiento = item.Su_Direccion; //dtrcabGuiaRe.GetString(6);//tb_empresa myObject.infoGuiaRemision.dirPartida = item.Direccion_Origen; //dtrcabGuiaRe.GetString(7); myObject.infoGuiaRemision.razonSocialTransportista = item.Nombre_Transportista; //dtrcabGuiaRe.GetString(8);//tb_persona myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05"; //dtrcabGuiaRe.GetString(9);//ficha sri que tipo de ID-CC pendiente myObject.infoGuiaRemision.rucTransportista = item.Cedula_Transportista; //dtrcabGuiaRe.GetString(10);//tb_persona myObject.infoGuiaRemision.obligadoContabilidad = item.ObligadoAllevarConta; //obliconta;//tb_empresa - conversion S por SI o N por NO myObject.infoGuiaRemision.contribuyenteEspecial = item.ContribuyenteEspecial; //contspecia; myObject.infoGuiaRemision.fechaIniTransporte = Convert.ToString(item.gi_FechaIniTraslado); //dtrcabGuiaRe.GetString(11); myObject.infoGuiaRemision.fechaFinTransporte = Convert.ToString(item.gi_FechaFinTraslado); //dtrcabGuiaRe.GetString(12); myObject.infoGuiaRemision.placa = item.placa; //dtrcabGuiaRe.GetString(13); //datos del destinatario destinatari.identificacionDestinatario = item.pe_cedulaRuc; //dtrcabGuiaRe.GetString(15); destinatari.razonSocialDestinatario = item.pe_razonSocial; //dtrcabGuiaRe.GetString(16); destinatari.dirDestinatario = item.pe_direccion; //dtrcabGuiaRe.GetString(17); destinatari.motivoTraslado = item.descripcion_motivo_traslado; //dtrcabGuiaRe.GetString(18); destinatari.ruta = item.ruta; //dtrcabGuiaRe.GetString(19); // si la guia de remision tiene factura } //para extraer el detalle de la hoja, multiples lineas de producto detalle det = new detalle(); det.codigoInterno = item.pr_codigo; //dtrcabGuiaRe.GetString(21); det.codigoAdicional = item.pr_descripcion; //dtrcabGuiaRe.GetString(22); det.descripcion = item.pr_descripcion_2; //dtrcabGuiaRe.GetString(23); det.cantidad = Convert.ToDecimal(item.gi_cantidad); //Convert.ToDecimal(dtrcabGuiaRe.GetDouble(24)); // DETALLES ADICIONALES det.detallesAdicionales = new List <detalleDetAdicional>(); detalleDetAdicional DtelleAd = new detalleDetAdicional(); DtelleAd.nombre = item.unidad_medida_consumo; //dtrcabGuiaRe.GetString(25); DtelleAd.valor = item.unidad_medida_consumo; //dtrcabGuiaRe.GetString(25); det.detallesAdicionales.Add(DtelleAd); destinatari.detalles.detalle.Add(det); if (item.pe_correo != null) { correo = item.pe_correo; //dtrcabGuiaRe.GetString(26); } //campos adicionales guía de remisión guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional(); Cl_ValidarEmail_Info datosAdc = new Cl_ValidarEmail_Info(); if (datosAdc.email_bien_escrito(correo) == true) { compoadicional.nombre = "MAIL"; compoadicional.Value = correo; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } //punto de llegada if (item.Direccion_Destino != "") //(dtrcabGuiaRe.IsDBNull(27) == false) { compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "DESTINO"; compoadicional.Value = item.Direccion_Destino; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } //Obra de referencia if (item.descripcion_obra != "") //(dtrcabGuiaRe.IsDBNull(28) == false) { compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "OBRA"; compoadicional.Value = item.descripcion_obra; //dtrcabGuiaRe.GetString(28); myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } destinatarios.destinatario.Add(destinatari); lista.Add(myObject); } return(lista);; } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex) { EntityType = typeof(fa_guia_remision_Bus) }; } }
public List <factura> GenerarXmlFactura(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { #region conexion de base detos efrim try { using (SqlConnection co = new SqlConnection(OconEfirm)) { co.Open(); sql = "select RUC,RAZONSOCIAL,NOMBRECOMERCIAL,DIRMATRIZ,CONTRIBUYENTEESPECIAL from tb_Empresa where RUC ='0992496797001'"; SqlCommand cmd = new SqlCommand(sql, co); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { ruc = reader.GetString(0); Rz = reader.GetString(1); Nomcom = reader.GetString(2); direccion = reader.GetString(3); contspecia = reader.GetString(4); } co.Close(); reader.Close(); } } catch (Exception ex) { } #endregion DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); string sFi, sFf; sFi = string.Format(formatoFechaDB, Fi); sFf = string.Format(formatoFechaDB, Ff); List <factura> facAux0 = new List <factura>(); //Generación de la Factura de Expoguayaquil. try { List <factura> lista = new List <factura>(); using (SqlConnection conexion = new SqlConnection(ConexionDBCliente)) { conexion.Open(); string sqlcabFact = "select * from ELECTRONICA_FAC_CABECERA_NEW where fechaEmision between '" + sFi + "' and '" + sFf + "'"; SqlCommand cmdcabFact = new SqlCommand(sqlcabFact, conexion); SqlDataReader dtrcabFact = cmdcabFact.ExecuteReader(); while (dtrcabFact.Read()) { try { string Ruc = ""; factura myObject = new factura(); myObject.version = "1.1.0"; myObject.id = facturaID.comprobante; myObject.idSpecified = true; infoTributaria info = new infoTributaria(); myObject.infoFactura = new facturaInfoFactura(); myObject.infoFactura.totalConImpuestos = new List <facturaInfoFacturaTotalImpuesto>(); myObject.infoFactura.pagos = new List <pagosPago>(); pagosPago Pago = new pagosPago(); myObject.infoTributaria = info; myObject.detalles = new List <facturaDetalle>(); facturaInfoFacturaTotalImpuesto impuesto = null; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = Rz; myObject.infoTributaria.nombreComercial = Nomcom; myObject.infoTributaria.ruc = ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; //********************************************************************************* myObject.infoTributaria.codDoc = "01"; myObject.infoTributaria.estab = dtrcabFact.GetString(4); myObject.infoTributaria.ptoEmi = dtrcabFact.GetString(5); myObject.infoTributaria.secuencial = dtrcabFact.GetString(3).PadLeft(9, '0'); myObject.infoTributaria.dirMatriz = direccion; myObject.infoFactura.fechaEmision = string.Format("{0:dd/MM/yyyy}", dtrcabFact.GetDateTime(0)); myObject.infoFactura.dirEstablecimiento = direccion; myObject.infoFactura.contribuyenteEspecial = contspecia; myObject.infoFactura.obligadoContabilidadSpecified = true; myObject.infoFactura.obligadoContabilidad = obligadoContabilidad.SI; myObject.infoFactura.tipoIdentificacionComprador = dtrcabFact.GetString(1); myObject.infoFactura.razonSocialComprador = dtrcabFact.GetString(2); myObject.infoFactura.identificacionComprador = Convert.ToString(dtrcabFact.GetString(10)); myObject.infoFactura.direccionComprador = Convert.ToString(dtrcabFact.GetString(12)); myObject.infoFactura.totalSinImpuestos = dtrcabFact.GetDecimal(7); myObject.infoFactura.totalDescuento = dtrcabFact.GetDecimal(9); //campos de propina myObject.infoFactura.propinaSpecified = true; myObject.infoFactura.propina = 0; //valor total de la factura myObject.infoFactura.importeTotal = Convert.ToDecimal(dtrcabFact.GetDecimal(6)); myObject.infoFactura.moneda = "DOLAR"; //forma de pago quemada por decisión del cliente, siempre va a usar esta forma de pago Pago.formaPago = (dtrcabFact.IsDBNull(13) == true) ? "01" : dtrcabFact.GetString(13); Pago.total = Convert.ToDecimal(dtrcabFact.GetDecimal(6)); Pago.plazoSpecified = true; Pago.plazo = (dtrcabFact.IsDBNull(14) == true) ? 1 : (Convert.ToDecimal(dtrcabFact.GetInt32(14))); Pago.unidadTiempo = (dtrcabFact.IsDBNull(15) == true) ? "día" : dtrcabFact.GetString(15); myObject.infoFactura.pagos.Add(Pago); using (SqlConnection conexion2 = new SqlConnection(ConexionDBCliente)) { string SFecha_busqueda = string.Format(formatoFechaDB, dtrcabFact.GetDateTime(0)); conexion2.Open(); string SQLTot_impuesto = "select * from ELECTRONICA_FAC_TOT_IMPUESTOS where secuencial='" + dtrcabFact.GetString(16) + "'"; SqlCommand cmdTotImpuesto = new SqlCommand(SQLTot_impuesto, conexion2); SqlDataReader dtrTotImpuesto = cmdTotImpuesto.ExecuteReader(); while (dtrTotImpuesto.Read()) { impuesto = new facturaInfoFacturaTotalImpuesto(); impuesto.codigo = dtrTotImpuesto.GetString(1); impuesto.codigoPorcentaje = dtrTotImpuesto.GetString(2); if (dtrTotImpuesto.GetString(2) == "0") { impuesto.baseImponible = dtrTotImpuesto.GetDecimal(5); } else { if (dtrTotImpuesto.GetString(2) == "2") { impuesto.baseImponible = dtrTotImpuesto.GetDecimal(4); } else if (dtrTotImpuesto.GetString(2) == "3") { impuesto.baseImponible = dtrTotImpuesto.GetDecimal(3); } } impuesto.valor = dtrTotImpuesto.GetDecimal(6); myObject.infoFactura.totalConImpuestos.Add(impuesto); } } using (SqlConnection conexion1 = new SqlConnection(ConexionDBCliente)) { string sqlDetalleFac = ""; conexion1.Open(); // sentencia para extraer detalle de factura if (dtrcabFact.GetInt32(11) == 0) { sqlDetalleFac = "select * from ELECTRONICA_FAC_DETALLE where secuencial='" + dtrcabFact.GetString(16) + "' "; } else { sqlDetalleFac = "select * from ELECTRONICA_FAC_DETALLE_S where secuencial='" + dtrcabFact.GetString(16) + "' "; } SqlCommand cmdDetalleFac = new SqlCommand(sqlDetalleFac, conexion1); SqlDataReader dtrDetalleFac = cmdDetalleFac.ExecuteReader(); while (dtrDetalleFac.Read()) { impuesto imp = new impuesto(); facturaDetalle fDetalle = new facturaDetalle(); fDetalle.codigoPrincipal = dtrDetalleFac.GetString(1); fDetalle.codigoAuxiliar = dtrDetalleFac.GetString(1); fDetalle.descripcion = dtrDetalleFac.GetString(5); fDetalle.cantidad = Convert.ToDecimal(dtrDetalleFac.GetDecimal(2)); fDetalle.precioUnitario = Convert.ToDecimal(dtrDetalleFac.GetDecimal(3)); fDetalle.descuento = dtrDetalleFac.GetDecimal(8); fDetalle.precioTotalSinImpuesto = Convert.ToDecimal(dtrDetalleFac.GetDecimal(4)); if (dtrDetalleFac.GetString(6) == "VS-12%") { imp.codigo = "2"; imp.codigoPorcentaje = "2"; imp.tarifa = 12; imp.baseImponible = dtrDetalleFac.GetDecimal(4); imp.valor = dtrDetalleFac.GetDecimal(7); } else if (dtrDetalleFac.GetString(6) == "VS-14%") { imp.codigo = "2"; imp.codigoPorcentaje = "3"; imp.tarifa = 14; imp.baseImponible = dtrDetalleFac.GetDecimal(4); imp.valor = dtrDetalleFac.GetDecimal(7); } else { imp.codigo = "2"; imp.codigoPorcentaje = "0"; imp.tarifa = 0; imp.baseImponible = dtrDetalleFac.GetDecimal(4); imp.valor = dtrDetalleFac.GetDecimal(7); } if (dtrDetalleFac.IsDBNull(9) == false) { campoAdicional = dtrDetalleFac.GetString(9); } fDetalle.impuestos = new List <impuesto>(); fDetalle.impuestos.Add(imp); myObject.detalles.Add(fDetalle); } // campos adicionales fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (campoAdicional != null) { if (datosAdc.email_bien_escrito(campoAdicional) == true) { facturaCampoAdicional compoadicional = new facturaCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = campoAdicional; myObject.infoAdicional = new List <facturaCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } } dtrDetalleFac.Close(); conexion1.Close(); lista.Add(myObject); facAux0 = lista; } } catch (Exception ex) { } } dtrcabFact.Close(); conexion.Close(); } return(lista); } catch (Exception ex) { // MessageBox.Show(ex.Message); return(facAux0); } }