示例#1
0
        public static List <VENTA> obtenerCotizaciones(Int32 cliente)
        {
            List <VENTA> listVENTA = new List <VENTA>();
            String       Qry       = @"SELECT id_venta, cve_Cte, fecha, subtotal, iva, descuento, total  FROM venta WHERE cve_Cte=@ID and tipo='PRESUPUESTO'";
            BaseDatos    d         = new BaseDatos();

            d.Conectar();
            d.CrearComando(Qry);
            d.AsignarParametroEntero("@ID", cliente);
            DbDataReader datosItems = d.EjecutarConsulta();

            while (datosItems.Read())
            {
                VENTA objVENTA = new VENTA();
                objVENTA.id_venta  = Convert.ToInt32(datosItems["id_venta"].ToString());
                objVENTA.cve_cte   = Convert.ToInt32(datosItems["cve_cte"].ToString());
                objVENTA.fecha     = Convert.ToDateTime(datosItems["fecha"].ToString());
                objVENTA.subtotal  = Convert.ToDouble(datosItems["subtotal"].ToString());
                objVENTA.iva       = Convert.ToDouble(datosItems["iva"].ToString());
                objVENTA.descuento = Convert.ToDouble(datosItems["descuento"].ToString());
                objVENTA.total     = Convert.ToDouble(datosItems["total"].ToString());
                listVENTA.Add(objVENTA);
            }
            datosItems.Close();
            d.Desconectar();
            return(listVENTA);
        }
示例#2
0
        public static List <VENTA> seleccionarVENTA(DateTime inicio, DateTime fin, String rfc)
        {
            String       Qry       = "";
            List <VENTA> listVENTA = new List <VENTA>();
            BaseDatos    d         = new BaseDatos();

            d.Conectar();
            if (rfc == "")
            {
                Qry = @"
                SELECT id_venta,serie,folio, cve_Cte, fecha, subtotal, iva, descuento, total,tipo,receptor,uuid,folioCancelacion FROM venta 
                WHERE tipo<>'PRESUPUESTO' and  uuid is not null  AND `fecha` 
                BETWEEN @desde and @hasta
                union
                SELECT id_venta, serie,folio, cve_Cte, fecha, subtotal, iva, descuento, total,tipo,receptor,uuid,folioCancelacion FROM venta
                WHERE   uuid is null AND `fecha` ";//
                d.CrearComando(Qry);
            }
            else
            {
                Qry = @"SELECT id_venta,serie,folio, cve_Cte, fecha, subtotal, iva, descuento, total,tipo,receptor,uuid,folioCancelacion FROM venta WHERE tipo<>'PRESUPUESTO' and  uuid is not null AND `fecha` 
                BETWEEN @desde and @hasta and receptor like @rfc
                union
                SELECT id_venta,serie,folio,  cve_Cte, fecha, subtotal, iva, descuento, total,tipo,receptor,uuid,folioCancelacion FROM venta
                WHERE   uuid is null  AND `fecha` ";
                d.CrearComando(Qry);
                d.AsignarParametroCadena("@rfc", "%" + rfc + "%");
            }


            d.AsignarParametroCadena("@desde", inicio.ToString("yyyy-MM-dd"));
            d.AsignarParametroCadena("@hasta", fin.ToString("yyyy-MM-dd"));
            DbDataReader datosItems = d.EjecutarConsulta();

            while (datosItems.Read())
            {
                VENTA objVENTA = new VENTA();
                objVENTA.receptor    = datosItems["receptor"].ToString();
                objVENTA.id_venta    = Convert.ToInt32(datosItems["id_venta"].ToString());
                objVENTA.serie       = datosItems["serie"].ToString();;
                objVENTA.folio       = datosItems["folio"].ToString();
                objVENTA.cve_cte     = Convert.ToInt32(datosItems["cve_cte"].ToString());
                objVENTA.fecha       = Convert.ToDateTime(datosItems["fecha"].ToString());
                objVENTA.subtotal    = Convert.ToDouble(datosItems["subtotal"].ToString());
                objVENTA.iva         = Convert.ToDouble(datosItems["iva"].ToString());
                objVENTA.descuento   = Convert.ToDouble(datosItems["descuento"].ToString());
                objVENTA.total       = Convert.ToDouble(datosItems["total"].ToString());
                objVENTA.tipo        = datosItems["tipo"].ToString();
                objVENTA.uuid        = datosItems["uuid"].ToString();
                objVENTA.cancelacion = datosItems["folioCancelacion"].ToString();
                listVENTA.Add(objVENTA);
            }
            datosItems.Close();
            d.Desconectar();
            return(listVENTA);
        }
示例#3
0
        public static VENTA  seleccionarVENTA(string ID)
        {
            VENTA     objVENTA = new VENTA();
            String    Qry      = @"SELECT * FROM venta,clientes WHERE venta.receptor=clientes.rfc and id_venta=@ID";
            BaseDatos d        = new BaseDatos();

            d.Conectar();
            d.CrearComando(Qry);
            d.AsignarParametroCadena("@ID", ID);
            DbDataReader datosItems = d.EjecutarConsulta();

            while (datosItems.Read())
            {
                objVENTA.receptor       = datosItems["receptor"].ToString();
                objVENTA.id_venta       = Convert.ToInt32(datosItems["id_venta"].ToString());
                objVENTA.cve_cte        = Convert.ToInt32(datosItems["cve_cte"].ToString());
                objVENTA.fecha          = Convert.ToDateTime(datosItems["fecha"].ToString());
                objVENTA.subtotal       = Convert.ToDouble(datosItems["subtotal"].ToString());
                objVENTA.iva            = Convert.ToDouble(datosItems["iva"].ToString());
                objVENTA.descuento      = Convert.ToDouble(datosItems["descuento"].ToString());
                objVENTA.total          = Convert.ToDouble(datosItems["total"].ToString());
                objVENTA.tipo           = datosItems["tipo"].ToString();
                objVENTA.serie          = datosItems["serie"].ToString();
                objVENTA.folio          = datosItems["folio"].ToString();
                objVENTA.nombreReceptor = datosItems["tipo"].ToString();
                objVENTA.usocfdi        = datosItems["usoCFDI"].ToString().Split('-')[0];
                objVENTA.metodo_pago    = datosItems["metodo_pago"].ToString();
                objVENTA.forma_pago     = datosItems["forma_pago"].ToString();
                objVENTA.nombreReceptor = datosItems["nombre"].ToString();
                objVENTA.xml            = datosItems["xml"].ToString();
                objVENTA.uuid           = datosItems["UUID"].ToString();
            }
            datosItems.Close();
            d.Desconectar();
            return(objVENTA);
        }
示例#4
0
        public string Nueva(string IDVENTA)
        {
            VENTA venta = metodos_VENTA.seleccionarVENTA(IDVENTA);
            List <DETALLEVENTA> detalle           = metodos_DETALLEVENTA.seleccionarDETALLEVENTA(Convert.ToInt32(IDVENTA));
            Comprobante         objetoComprobante = new Comprobante();

            // Nodo comprobante
            objetoComprobante.Version = "3.3";
            objetoComprobante.Serie   = venta.serie;
            objetoComprobante.Folio   = venta.folio;
            objetoComprobante.Fecha   = Convert.ToDateTime(DateTime.Now.ToString("s"));

            objetoComprobante.TipoDeComprobante = c_TipoDeComprobante.I;

            objetoComprobante.MetodoPagoSpecified = true;
            objetoComprobante.MetodoPago          = venta.metodo_pago.Split('-')[0];
            objetoComprobante.FormaPagoSpecified  = true;
            objetoComprobante.FormaPago           = venta.forma_pago.Split('-')[0];

            objetoComprobante.LugarExpedicion = ConfigurationManager.AppSettings["LugarExpedicion"];
            X509Certificate2 certEmisor = new X509Certificate2();

            byte[] byteCertData = ReadFile(ConfigurationManager.AppSettings["rutaCer"]);
            certEmisor.Import(byteCertData);
            //objetoComprobante.Sello = generaSello();
            objetoComprobante.NoCertificado = ConfigurationManager.AppSettings["noCertificado"];
            objetoComprobante.Certificado   = Convert.ToBase64String(certEmisor.GetRawCertData());


            objetoComprobante.Emisor               = new ComprobanteEmisor();
            objetoComprobante.Emisor.Rfc           = ConfigurationManager.AppSettings["rfcEmisor"];
            objetoComprobante.Emisor.Nombre        = ConfigurationManager.AppSettings["Empresa"];
            objetoComprobante.Emisor.RegimenFiscal = c_RegimenFiscal.Item612;//  ConfigurationManager.AppSettings["RegimenFiscal"];

            objetoComprobante.Receptor         = new ComprobanteReceptor();
            objetoComprobante.Receptor.Rfc     = venta.receptor;
            objetoComprobante.Receptor.Nombre  = venta.nombreReceptor;
            objetoComprobante.Receptor.UsoCFDI = "G03";//venta.usocfdi.Split('-')[0];


            objetoComprobante.Conceptos = new ComprobanteConcepto[detalle.Count];


            int     indice   = 0;
            decimal impuesto = 0;

            foreach (DETALLEVENTA v in detalle)
            {
                objetoComprobante.Conceptos[indice] = new ComprobanteConcepto();

                objetoComprobante.Conceptos[indice].Impuestos = new ComprobanteConceptoImpuestos();



                objetoComprobante.Conceptos[indice].Impuestos.Traslados = new ComprobanteConceptoImpuestosTraslado[1];

                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0]                     = new ComprobanteConceptoImpuestosTraslado();
                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0].Base                = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", v.precio * v.cantidad));                           //TODO calcular interes + carga - descuento
                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0].Importe             = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", v.precio * v.cantidad * Convert.ToDecimal(0.16))); //TODO IVA
                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0].TipoFactor          = c_TipoFactor.Tasa;
                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0].Impuesto            = c_Impuesto.Item002;                                                                                              //IVA
                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0].TasaOCuota          = 0.160000m;
                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0].ImporteSpecified    = true;
                objetoComprobante.Conceptos[indice].Impuestos.Traslados[0].TasaOCuotaSpecified = true;

                objetoComprobante.Conceptos[indice].ClaveProdServ = v.claveservicio;
                objetoComprobante.Conceptos[indice].ClaveUnidad   = v.claveunidad;
                objetoComprobante.Conceptos[indice].Cantidad      = Convert.ToDecimal(v.cantidad);
                objetoComprobante.Conceptos[indice].Unidad        = metodos_C_CVEUNIDAD.seleccionarC_CVEUNIDAD(v.claveunidad).nombre;
                objetoComprobante.Conceptos[indice].Descripcion   = v.descripcion;
                objetoComprobante.Conceptos[indice].ValorUnitario = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", v.precio));
                objetoComprobante.Conceptos[indice].Importe       = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", v.precio * v.cantidad));
                impuesto += Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", objetoComprobante.Conceptos[indice].Importe));
                indice++;
            }


            //Nodo Impuestos
            objetoComprobante.Impuestos = new ComprobanteImpuestos();
            objetoComprobante.Impuestos.TotalImpuestosTrasladadosSpecified = true;
            //
            // Nodo Impuestos Trasladados
            objetoComprobante.Impuestos.Traslados = new ComprobanteImpuestosTraslado[1];


            objetoComprobante.Impuestos.Traslados[0]            = new ComprobanteImpuestosTraslado();
            objetoComprobante.Impuestos.Traslados[0].Importe    = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", venta.iva));
            objetoComprobante.Impuestos.Traslados[0].TasaOCuota = 0.160000m;
            objetoComprobante.Impuestos.Traslados[0].Impuesto   = c_Impuesto.Item002;

            objetoComprobante.Impuestos.TotalImpuestosTrasladados = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", venta.iva));;
            objetoComprobante.SubTotal = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", venta.subtotal));
            objetoComprobante.Moneda   = c_Moneda.MXN;
            objetoComprobante.Total    = Convert.ToDecimal(String.Format("{0:###0.00;(###0.00);0.00}", venta.total));

            // Creas los namespaces requeridos
            XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces();

            xmlNameSpace.Add("cfdi", "http://www.sat.gob.mx/cfd/3");
            //xmlNameSpace.Add("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital");
            xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            //xmlNameSpace.Add("xsi:schemaLocation", "http://www.sat.gob.mx/cfd/3http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/TimbreFiscalDigitalhttp://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd");
            xmlNameSpace.Add("schemaLocation", "http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd");

            // Creas una instancia de XMLSerializer con el tipo de dato Comprobante
            XmlSerializer xmlArchivo    = new XmlSerializer(typeof(Comprobante));
            XmlTextWriter xmlTextWriter = new XmlTextWriter(@"C:\CFDI\SinTimbrar.xml", Encoding.UTF8);

            xmlTextWriter.Formatting = Formatting.Indented;
            xmlArchivo.Serialize(xmlTextWriter, objetoComprobante, xmlNameSpace);
            xmlTextWriter.Close();

            XmlDocument documentoXml = new XmlDocument();

            documentoXml.Load(@"C:\CFDI\SinTimbrar.xml");
            desSerializarXML();
            return(Timbrar(IDVENTA, venta.receptor, venta.serie, venta.folio, venta.total));
        }