Example #1
0
 public fx_GeneradorXML_Comprobante_Info(string _IdComprobante, DateTime _Fecha, eTipoComprobante _TipoCbte
                                         , string _Observacion, liquidacionCompra _cbteRet)
 {
     IdComprobante = _IdComprobante;
     Fecha         = _Fecha;
     TipoCbte      = _TipoCbte;
     Observacion   = _Observacion;
     cbte_liq      = _cbteRet;
 }
Example #2
0
        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>());
            }
        }
Example #3
0
 public liquidacion_compra_Ride_Info()
 {
     factura        = new liquidacionCompra();
     List_FormaPago = new List <pagosPago_info>();
 }