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>()); } }
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>()); } }
public List <comprobanteRetencion> GenerarXmlRetencion(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { //string sFi, sFf; //sFi = string.Format(formatoFechaDB, FechaIni); //sFf = string.Format(formatoFechaDB, FechaFin); DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); List <comprobanteRetencion> lista = new List <comprobanteRetencion>(); try { using (Entity_conexion_efixed Context = new Entity_conexion_efixed()) { var retenciones = Context.vwfe_retencion.Where(v => v.fecha >= Fi && v.fecha <= Ff); foreach (var item in retenciones) { try { comprobanteRetencion myObjectRete = new comprobanteRetencion(); myObjectRete.id = comprobanteRetencionID.comprobante; myObjectRete.version = "1.0.0"; myObjectRete.idSpecified = true; myObjectRete.infoTributaria = new infoTributaria(); myObjectRete.infoCompRetencion = new comprobanteRetencionInfoCompRetencion(); myObjectRete.impuestos = new List <FirmElect.Info.class_sri.Retencion.impuesto>(); myObjectRete.infoTributaria.ambiente = "1"; myObjectRete.infoTributaria.tipoEmision = "1"; myObjectRete.infoTributaria.razonSocial = item.RazonSocial; myObjectRete.infoTributaria.nombreComercial = item.NombreComercial; myObjectRete.infoTributaria.ruc = item.em_ruc; myObjectRete.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObjectRete.infoTributaria.codDoc = "07"; myObjectRete.infoTributaria.estab = item.serie1; myObjectRete.infoTributaria.ptoEmi = item.serie2; myObjectRete.infoTributaria.secuencial = Convert.ToString(item.NumRetencion); myObjectRete.infoTributaria.dirMatriz = item.em_direccion; myObjectRete.infoCompRetencion.fechaEmision = string.Format("{0:dd/MM/yyyy}", item.fecha);//.Trim(); myObjectRete.infoCompRetencion.dirEstablecimiento = item.em_direccion; //if (item.ContribuyenteEspecial != "0000") //{ // myObjectRete.infoCompRetencion.contribuyenteEspecial = item.ContribuyenteEspecial; //} myObjectRete.infoCompRetencion.obligadoContabilidad = "SI"; if (item.IdTipoDocumento == "RUC") { myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "04"; } if (item.IdTipoDocumento == "PAS") { myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "06"; } if (item.IdTipoDocumento == "CED") { myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "05"; } myObjectRete.infoCompRetencion.razonSocialSujetoRetenido = (item.pe_nombreCompleto.ToString().Replace("S.A", "")).Trim(); myObjectRete.infoCompRetencion.identificacionSujetoRetenido = Convert.ToString(item.pe_cedulaRuc); myObjectRete.infoCompRetencion.periodoFiscal = Convert.ToString(myObjectRete.infoCompRetencion.fechaEmision).Substring(3, 7); // sentencia para extraer detalle de retencion var retencion_det = Context.vwfe_retencion_detalle.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdRetencion == item.IdRetencion).ToList(); foreach (var item_det in retencion_det) { FirmElect.Info.class_sri.Retencion.impuesto imp = new FirmElect.Info.class_sri.Retencion.impuesto(); if (item_det.re_tipoRet == "RTF") { imp.codigo = "1"; } else { imp.codigo = "2"; } if (item_det.re_tipoRet != "RTF") { if (item_det.re_Porcen_retencion == 10) { imp.codigoRetencion = "09"; } if (item_det.re_Porcen_retencion == 20) { imp.codigoRetencion = "10"; } if (item_det.re_Porcen_retencion == 30) { imp.codigoRetencion = "1"; } if (item_det.re_Porcen_retencion == 50) { imp.codigoRetencion = "11"; } if (item_det.re_Porcen_retencion == 70) { imp.codigoRetencion = "2"; } if (item_det.re_Porcen_retencion == 100) { imp.codigoRetencion = "3"; } } else { imp.codigoRetencion = item_det.re_Codigo_impuesto; } imp.baseImponible = Convert.ToDecimal(item_det.baseRetencion); imp.porcentajeRetener = Convert.ToDecimal(item_det.re_Porcen_retencion); imp.valorRetenido = Convert.ToDecimal(item_det.re_valor_retencion); imp.codDocSustento = item.IdOrden_giro_Tipo.ToString(); imp.numDocSustento = item.co_serie.Substring(0, 3) + item.co_serie.Substring(4, 3) + item.co_factura; imp.fechaEmisionDocSustento = string.Format("{0:dd/MM/yyyy}", item.co_fechaOg);//.Trim(); myObjectRete.impuestos.Add(imp); } // campos adicionales if (item.pe_correo == null) { item.pe_correo = ""; } fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (datosAdc.email_bien_escrito(item.pe_correo) == true) { myObjectRete.infoAdicional = new List <comprobanteRetencionCampoAdicional>(); comprobanteRetencionCampoAdicional compoadicional = new comprobanteRetencionCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.pe_correo; myObjectRete.infoAdicional.Add(compoadicional); } lista.Add(myObjectRete); } catch (Exception ex) { } } return(lista); } } catch (Exception ex) { return(new List <comprobanteRetencion>()); } }
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 <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>()); } }