protected DataTable getResumenContratos()
        {
            ResumenContrato oResumenContrato = new ResumenContrato();

            oResumenContrato.getMakeTable();

            DBConn oConn = new DBConn();

            if (oConn.Open())
            {
                cContratos oContratos = new cContratos(ref oConn);
                oContratos.Aprobado = true;
                //oContratos.AnoTermino = cmbox_ano.SelectedValue;
                DataTable dtContrato = oContratos.GetForResumen();
                if (dtContrato != null)
                {
                    foreach (DataRow oRow in dtContrato.Rows)
                    {
                        oResumenContrato.Licenciatario = oRow["licenciatario"].ToString();
                        oResumenContrato.NoContrato    = oRow["no_contrato"].ToString();
                        oResumenContrato.Inicio        = DateTime.Parse(oRow["fech_inicio"].ToString()).ToString("dd/MM/yyyy");
                        oResumenContrato.Final         = DateTime.Parse(oRow["fech_termino"].ToString()).ToString("dd/MM/yyyy");
                        oResumenContrato.PorVencer     = string.Empty;

                        string sMesPeriodo   = string.Empty;
                        string sFechaPeriodo = string.Empty;

                        string sNumFactura      = string.Empty;
                        string sFechFactura     = string.Empty;
                        string sFechComprobante = string.Empty;

                        cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                        oReporteVenta.InMesReporte = sMeses;
                        oReporteVenta.AnoReporte   = cmbox_ano.SelectedValue;
                        oReporteVenta.NumContrato  = oRow["num_contrato"].ToString();
                        oReporteVenta.OrderMes     = true;
                        DataTable dtReporteVenta = oReporteVenta.GetResumenContrato();
                        if (dtReporteVenta != null)
                        {
                            sNumFactura      = string.Empty;
                            sFechFactura     = string.Empty;
                            sFechComprobante = string.Empty;

                            oResumenContrato.MesFechaUno  = null;
                            oResumenContrato.MesFechaDos  = null;
                            oResumenContrato.MesFechaTres = null;
                            if (dtReporteVenta.Rows.Count > 0)
                            {
                                foreach (DataRow oRowVenta in dtReporteVenta.Rows)
                                {
                                    sMesPeriodo   = (string.IsNullOrEmpty(sMesPeriodo) ? oRowVenta["mes_reporte"].ToString() : sMesPeriodo + ',' + oRowVenta["mes_reporte"].ToString());
                                    sFechaPeriodo = (string.IsNullOrEmpty(sFechaPeriodo) ? oRowVenta["fecha_reporte"].ToString() : sFechaPeriodo + ',' + oRowVenta["fecha_reporte"].ToString());
                                }

                                string[] sMes           = sMeses.Split(',');
                                string[] sMesArrPeriodo = sMesPeriodo.Split(',');
                                string[] sFechPeriodo   = sFechaPeriodo.Split(',');

                                oResumenContrato.MesFechaUno  = string.Empty;
                                oResumenContrato.MesFechaDos  = string.Empty;
                                oResumenContrato.MesFechaTres = string.Empty;

                                for (int i = 0; i < sMesArrPeriodo.Length; i++)
                                {
                                    if (sMes[0].ToString() == sMesArrPeriodo[i].ToString())
                                    {
                                        oResumenContrato.MesFechaUno = DateTime.Parse(sFechPeriodo[i]).ToString("dd/MM/yyyy");
                                    }
                                    if (sMes[1].ToString() == sMesArrPeriodo[i].ToString())
                                    {
                                        oResumenContrato.MesFechaDos = DateTime.Parse(sFechPeriodo[i]).ToString("dd/MM/yyyy");
                                    }
                                    if (sMes[2].ToString() == sMesArrPeriodo[i].ToString())
                                    {
                                        oResumenContrato.MesFechaTres = DateTime.Parse(sFechPeriodo[i]).ToString("dd/MM/yyyy");
                                    }
                                }

                                cFactura oFactura = new cFactura(ref oConn);
                                oFactura.NumContrato = oRow["num_contrato"].ToString();
                                oFactura.Periodo     = cmbox_periodo.SelectedValue + "/" + cmbox_ano.SelectedValue;
                                DataTable dtFactura = oFactura.Get();
                                if (dtFactura != null)
                                {
                                    if (dtFactura.Rows.Count > 0)
                                    {
                                        sNumFactura  = dtFactura.Rows[0]["num_invoice"].ToString();
                                        sFechFactura = DateTime.Parse(dtFactura.Rows[0]["date_invoce"].ToString()).ToString("dd/MM/yyyy");

                                        if (!string.IsNullOrEmpty(dtFactura.Rows[0]["cod_comprobante"].ToString()))
                                        {
                                            cComprobanteImpuesto oComprobanteImpuesto = new cComprobanteImpuesto(ref oConn);
                                            oComprobanteImpuesto.CodComprobante = dtFactura.Rows[0]["cod_comprobante"].ToString();
                                            DataTable dtComprobante = oComprobanteImpuesto.Get();
                                            if (dtComprobante != null)
                                            {
                                                if (dtComprobante.Rows.Count > 0)
                                                {
                                                    sFechComprobante = DateTime.Parse(dtComprobante.Rows[0]["fecha_declaracion"].ToString()).ToString("dd/MM/yyyy");
                                                }
                                            }
                                            dtComprobante = null;
                                        }
                                    }
                                }
                                dtFactura = null;
                            }
                            dtReporteVenta = null;
                        }

                        oResumenContrato.NumInvoce       = sNumFactura;
                        oResumenContrato.FechFactura     = sFechFactura;
                        oResumenContrato.FechComprobante = sFechComprobante;

                        oResumenContrato.AddRow();
                    }
                }
                dtContrato = null;
            }
            oConn.Close();
            DataTable dtResumenContrato = oResumenContrato.Get();

            return(dtResumenContrato);
        }
Пример #2
0
        public void ProcessRequest(HttpContext context)
        {
            string sPath           = string.Empty;
            string sNoContrato     = oWeb.GetData("NumContrato");
            string sFileName       = string.Empty;
            string pCodComprobante = oWeb.GetData("pCodComprobante");
            DBConn oConn           = new DBConn();

            if (oConn.Open())
            {
                cComprobanteImpuesto oComprobanteImpuesto = new cComprobanteImpuesto(ref oConn);
                oComprobanteImpuesto.CodComprobante = pCodComprobante;
                DataTable dtComprobante = oComprobanteImpuesto.Get();

                if (dtComprobante != null)
                {
                    if (dtComprobante.Rows.Count > 0)
                    {
                        sFileName = dtComprobante.Rows[0]["nom_comprobante"].ToString();
                    }
                }
                dtComprobante = null;
            }

            System.Web.HttpResponse oResponse = System.Web.HttpContext.Current.Response;

            //sPath = System.Web.HttpContext.Current.Server.MapPath("ComprobantesSII/") + sNoContrato + "/" + sFileName;
            sPath = System.Web.HttpContext.Current.Server.MapPath("rps_licenciatariosmattel/") + sFileName;
            oResponse.AppendHeader("Content-Disposition", "attachment; filename=" + sFileName);

            // Write the file to the Response
            const int bufferLength = 10000;

            byte[] buffer   = new Byte[bufferLength];
            int    length   = 0;
            Stream download = null;

            try
            {
                download = new FileStream(sPath, FileMode.Open, FileAccess.Read);
                do
                {
                    if (oResponse.IsClientConnected)
                    {
                        length = download.Read(buffer, 0, bufferLength);
                        oResponse.OutputStream.Write(buffer, 0, length);
                        buffer = new Byte[bufferLength];
                    }
                    else
                    {
                        length = -1;
                    }
                }while (length > 0);
                oResponse.Flush();
                oResponse.End();
            }
            finally
            {
                if (download != null)
                {
                    download.Close();
                }
            }
        }