protected void btnCancelar_Click(object sender, EventArgs e)
        {
            DBConn oConn = new DBConn();

            if (oConn.Open())
            {
                cDetalleVenta oDetalleVenta = new cDetalleVenta(ref oConn);
                oDetalleVenta.CodigoReporteVenta = hddCodReporteVenta.Value;
                oDetalleVenta.Accion             = "ELIMINAR";
                oDetalleVenta.Put();

                cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                oReporteVenta.CodigoReporteVenta = hddCodReporteVenta.Value;
                oReporteVenta.Facturado          = "N";
                oReporteVenta.EstReporte         = "E";
                oReporteVenta.Accion             = "EDITAR";
                oReporteVenta.Put();
            }
            oConn.Close();

            Session["Error"] = "Error en el proceso de autorización de ingreso de ventas. Por favor comuniquese con el administrador del sitio.";
            Response.Redirect("ingreso_ventas.aspx");
        }
        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);
        }
        protected void btnAprobar_Click(object sender, EventArgs e)
        {
            string        sNumInvoce = string.Empty;
            string        sPeriodo   = string.Empty;
            StringBuilder sHtml      = new StringBuilder();

            sHtml.Append(File.ReadAllText(Server.MapPath("invoice.html")));
            StringBuilder sDataProductos      = new StringBuilder();
            StringBuilder sDataValorProductos = new StringBuilder();
            double        dTotalFacturaUsd    = 0;
            bool          bExito = false;

            if (ViewState["dtFactura"] != null)
            {
                arrayMes = ViewState["arrayMes"] as string[];
                DataTable dtFactura = ViewState["dtFactura"] as DataTable;
                if (dtFactura != null)
                {
                    DBConn oConn = new DBConn();
                    if (oConn.Open())
                    {
                        cFactura oFactura = new cFactura(ref oConn);
                        oFactura.NumContrato = hdd_num_contrato.Value;
                        oFactura.Territory   = "CHILE";
                        oFactura.DateInvoce  = DateTime.Now.ToString("yyyy-MM-dd");
                        oFactura.DueDate     = DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd");
                        oFactura.TipoFactura = "Q";
                        oFactura.Accion      = "CREAR";
                        oFactura.Put();

                        if (string.IsNullOrEmpty(oFactura.Error))
                        {
                            bExito = true;
                        }

                        string pCodFactura = oFactura.CodFactura;

                        cDetalleFactura oDetalleFactura = new cDetalleFactura(ref oConn);
                        oDetalleFactura.CodigoFactura = pCodFactura;

                        foreach (DataRow oRow in dtFactura.Rows)
                        {
                            string    sDescripcionMarca = string.Empty;
                            DataTable dtMarca           = getMarca(oRow["Marca"].ToString());
                            if (dtMarca != null)
                            {
                                if (dtMarca.Rows.Count > 0)
                                {
                                    sDescripcionMarca = dtMarca.Rows[0]["descripcion"].ToString();
                                }
                            }
                            dtMarca = null;

                            string pCodCategoria         = null;
                            string sDescripcionCategoria = string.Empty;

                            string pCodSubCategoria         = null;
                            string sDescripcionSubCategoria = string.Empty;

                            if (!string.IsNullOrEmpty(oRow["Categoría"].ToString()))
                            {
                                pCodCategoria = oRow["Categoría"].ToString();
                                DataTable dtCategoria = getCategoria(oRow["Categoría"].ToString());
                                if (dtCategoria != null)
                                {
                                    if (dtCategoria.Rows.Count > 0)
                                    {
                                        sDescripcionCategoria = dtCategoria.Rows[0]["descripcion"].ToString();
                                    }
                                }
                                dtCategoria = null;
                            }
                            if (!string.IsNullOrEmpty(oRow["Subcategoría"].ToString()))
                            {
                                pCodSubCategoria = oRow["Subcategoría"].ToString();
                                DataTable dtSubCategoria = getSubCategoria(oRow["Subcategoría"].ToString());
                                if (dtSubCategoria != null)
                                {
                                    if (dtSubCategoria.Rows.Count > 0)
                                    {
                                        sDescripcionSubCategoria = dtSubCategoria.Rows[0]["descripcion"].ToString();
                                    }
                                }
                                dtSubCategoria = null;
                            }

                            sDataProductos.Append("<div style=\"padding-top:10px;padding-bottom:10px;\">");
                            sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;font-weight:bold;\">");
                            sDataProductos.Append(sDescripcionMarca);

                            if (!string.IsNullOrEmpty(sDescripcionCategoria))
                            {
                                sDataProductos.Append(" / " + sDescripcionCategoria);
                            }
                            if (!string.IsNullOrEmpty(sDescripcionSubCategoria))
                            {
                                sDataProductos.Append(" / " + sDescripcionSubCategoria);
                            }

                            sDataProductos.Append(" ").Append(String.Format("{0:P1}", double.Parse(oRow["Royalty (%)"].ToString()))).Append("</font></div>");
                            //sDataProductos.Append(" ").Append(oRow["Royalty (%)"].ToString()).Append("</font></div>");
                            sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">Royalties</font></div>");
                            sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">BDI</font></div>");
                            if (double.Parse(oRow["Saldo Advance USD"].ToString()) > 0)
                            {
                                sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">Advance</font></div>");
                            }
                            sDataProductos.Append("</div>");

                            oDetalleFactura.CodMarca        = oRow["Marca"].ToString();
                            oDetalleFactura.CodCategoria    = pCodCategoria;
                            oDetalleFactura.CodSubcategoria = pCodSubCategoria;
                            oDetalleFactura.MesNomUno       = arrayMes[0].ToString();
                            oDetalleFactura.MesMntUno       = oRow[oWeb.getMes(int.Parse(arrayMes[0].ToString())).ToString()].ToString();

                            oDetalleFactura.MesNomDos = arrayMes[1].ToString();
                            oDetalleFactura.MesMntDos = oRow[oWeb.getMes(int.Parse(arrayMes[1].ToString())).ToString()].ToString();

                            oDetalleFactura.MesNomTres = arrayMes[2].ToString();
                            oDetalleFactura.MesMntTres = oRow[oWeb.getMes(int.Parse(arrayMes[2].ToString())).ToString()].ToString();

                            oDetalleFactura.CodRoyalty      = oRow["CodRoyalty"].ToString();
                            oDetalleFactura.Royalty         = oRow["Royalty (%)"].ToString();
                            oDetalleFactura.Bdi             = oRow["BDI (%)"].ToString();
                            oDetalleFactura.Periodo         = oRow["Periodo"].ToString();
                            oDetalleFactura.MontoRoyaltyUsd = double.Parse(oRow["Monto Royalty USD"].ToString()).ToString();
                            oDetalleFactura.MontoBdiUsd     = double.Parse(oRow["Monto BDI USD"].ToString()).ToString();
                            oDetalleFactura.SaldoAdvanceUsd = double.Parse(oRow["Saldo Advance USD"].ToString()).ToString();
                            oDetalleFactura.FacturaUsd      = double.Parse(oRow["Factura USD"].ToString()).ToString();
                            oDetalleFactura.Accion          = "CREAR";
                            oDetalleFactura.Put();

                            if (!string.IsNullOrEmpty(oDetalleFactura.Error))
                            {
                                bExito = false;
                            }

                            cAdvanceContrato oAdvanceContrato = new cAdvanceContrato(ref oConn);
                            oAdvanceContrato.NumContrato     = hdd_num_contrato.Value;
                            oAdvanceContrato.CodMarca        = oRow["Marca"].ToString();
                            oAdvanceContrato.CodCategoria    = pCodCategoria;
                            oAdvanceContrato.CodSubCategoria = pCodSubCategoria;
                            if (double.Parse(oRow["Factura USD"].ToString()) > 0)
                            {
                                oAdvanceContrato.Saldo = oRow["Saldo"].ToString();
                            }
                            oAdvanceContrato.Accion = "EDITAR";
                            oAdvanceContrato.Put();

                            sDataValorProductos.Append("<div style=\"padding-top:10px;padding-bottom:10px; padding-left:10px;\">");
                            sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">&nbsp;</font></div>");
                            sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">&nbsp;</font></div>");
                            sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">$</font></div>");
                            sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">").Append(double.Parse(oRow["Monto Royalty USD"].ToString()).ToString("#,##0.00")).Append("</font></div>");
                            sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">$</font></div>");
                            sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">").Append(double.Parse(oRow["Monto BDI USD"].ToString()).ToString("#,##0.00")).Append("</font></div>");
                            sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">&nbsp;</font></div>");
                            if (double.Parse(oRow["Saldo Advance USD"].ToString()) > 0)
                            {
                                sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#ff0000; font-size:10pt;\">(").Append(double.Parse(oRow["Saldo Advance USD"].ToString()).ToString("#,##0.00")).Append(")</font></div>");
                            }
                            sDataValorProductos.Append("</div>");

                            dTotalFacturaUsd = dTotalFacturaUsd + double.Parse(oRow["Factura USD"].ToString());
                        }

                        string strNomDeudor   = string.Empty;
                        string sNomContacto   = string.Empty;
                        string sEmailContacto = string.Empty;
                        string sDireccion     = string.Empty;
                        string sComuna        = string.Empty;
                        string sCiudad        = string.Empty;

                        cContratos oContrato = new cContratos(ref oConn);
                        oContrato.NumContrato = hdd_num_contrato.Value;
                        DataTable dtContrato = oContrato.Get();
                        if (dtContrato != null)
                        {
                            if (dtContrato.Rows.Count > 0)
                            {
                                cDeudor oDeudor = new cDeudor(ref oConn);
                                oDeudor.NKeyDeudor = dtContrato.Rows[0]["nKey_Deudor"].ToString();
                                DataTable dtDeudor = oDeudor.Get();
                                if (dtDeudor != null)
                                {
                                    if (dtDeudor.Rows.Count > 0)
                                    {
                                        strNomDeudor = dtDeudor.Rows[0]["snombre"].ToString();
                                    }
                                }
                                dtDeudor = null;

                                cContactosDeudor oContactosDeudor = new cContactosDeudor(ref oConn);
                                oContactosDeudor.NKeyDeudor  = dtContrato.Rows[0]["nKey_Deudor"].ToString();
                                oContactosDeudor.NkeyCliente = oUsuario.NKeyUsuario;
                                DataTable dtContacto = oContactosDeudor.Get();
                                if (dtContacto != null)
                                {
                                    if (dtContacto.Rows.Count > 0)
                                    {
                                        sNomContacto   = dtContacto.Rows[0]["sNombre"].ToString();
                                        sEmailContacto = dtContacto.Rows[0]["sEmail"].ToString();
                                    }
                                }
                                dtContacto = null;

                                cDirecciones oDirecciones = new cDirecciones(ref oConn);
                                oDirecciones.NKeyDeudor  = dtContrato.Rows[0]["nKey_Deudor"].ToString();
                                oDirecciones.NkeyCliente = oUsuario.NKeyUsuario;
                                DataTable dtDireccion = oDirecciones.Get();
                                if (dtDireccion != null)
                                {
                                    if (dtDireccion.Rows.Count > 0)
                                    {
                                        sDireccion = dtDireccion.Rows[0]["sDireccion"].ToString();
                                        sComuna    = dtDireccion.Rows[0]["sComuna"].ToString();
                                        sCiudad    = dtDireccion.Rows[0]["sCiudad"].ToString();
                                    }
                                }
                                dtDireccion = null;
                            }
                        }
                        dtContrato = null;

                        //string sNumInvoce = strNomDeudor.Substring(0, 3).ToUpper();
                        //sNumInvoce = sNumInvoce.ToUpper();
                        //string sNumInvoce = "FE" + int.Parse(pCodFactura).ToString("D10");
                        sNumInvoce = "FE" + pCodFactura;

                        oFactura.Total      = dTotalFacturaUsd.ToString();
                        oFactura.Periodo    = hdd_periodo.Value + "/" + hdd_ano_periodo.Value;
                        oFactura.NumInvoice = sNumInvoce;
                        oFactura.Accion     = "EDITAR";
                        oFactura.Put();

                        cReporteVenta cReporteVenta;
                        arrayReporteVenta = ViewState["arrayReporteVenta"] as string[];
                        foreach (string pCodReporte in arrayReporteVenta)
                        {
                            cReporteVenta = new cReporteVenta(ref oConn);
                            cReporteVenta.CodigoReporteVenta = pCodReporte;
                            cReporteVenta.Facturado          = "F";
                            cReporteVenta.CodigoFactura      = pCodFactura;
                            cReporteVenta.Accion             = "EDITAR";
                            cReporteVenta.Put();
                        }

                        if (double.Parse(dTotalFacturaUsd.ToString()) > 0)
                        {
                            sHtml.Replace("[#TITLE]", "INVOICE");
                        }
                        else
                        {
                            sHtml.Replace("[#TITLE]", "CREDIT NOTE");
                        }

                        sHtml.Replace("[#NUMFACTURA]", sNumInvoce);
                        sHtml.Replace("[#NOMEMPRESA]", strNomDeudor);
                        sHtml.Replace("[#NOMCONTACTO]", sNomContacto);
                        sHtml.Replace("[#EMAILCONTACTO]", sEmailContacto);
                        sHtml.Replace("[#DIRECCION]", sDireccion + (!string.IsNullOrEmpty(sComuna) ? ", " + sComuna : string.Empty));
                        sHtml.Replace("[#CIUDAD]", sCiudad);
                        sHtml.Replace("[#PAIS]", "");
                        sHtml.Replace("[#FECHA]", DateTime.Now.ToString("d-MMM-yy", CultureInfo.CreateSpecificCulture("en-US")));
                        sHtml.Replace("[#NUMCONTRATO]", hdd_no_contrato.Value);
                        sHtml.Replace("[#PERIODOQ]", oDetalleFactura.Periodo);
                        sPeriodo = oDetalleFactura.Periodo;
                        sHtml.Replace("[#PROPERTY]", "");
                        sHtml.Replace("[#TERRITORIO]", "CHILE");
                        sHtml.Replace("[#DETALLEPRODUCTOS]", sDataProductos.ToString());
                        sHtml.Replace("[#DETALLEVALORPRODUCTOS]", sDataValorProductos.ToString());
                        sHtml.Replace("[#DUEDATE]", DateTime.Now.AddMonths(1).ToString("d-MMM-yy", CultureInfo.CreateSpecificCulture("en-US")));
                        //sHtml.Replace("[#TOTAL]", double.Parse(dTotalFacturaUsd.ToString()).ToString("#,##0.00"));
                        sHtml.Replace("[#TOTAL]", double.Parse(dTotalFacturaUsd.ToString()).ToString("N0"));

                        if (!Directory.Exists(Server.MapPath("Facturas/") + hdd_no_contrato.Value + "/"))
                        {
                            Directory.CreateDirectory(Server.MapPath("Facturas/") + hdd_no_contrato.Value + "/");
                        }

                        string sFileHtml = Server.MapPath("Facturas/") + hdd_no_contrato.Value + "/" + sNumInvoce + ".html";
                        File.WriteAllText(sFileHtml, sHtml.ToString(), Encoding.UTF8);
                    }
                    oConn.Close();
                }
                dtFactura = null;
            }

            if (bExito)
            {
                //cmbox_contrato.SelectedValue = "0";
                idGrilla.Visible  = false;
                idBtnSave.Visible = false;

                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cLogEventos oLogEventos = new cLogEventos(ref oConn);
                    oLogEventos.AccionLog   = "APROBAR POR DETALLE PRE-FACTURA Q";
                    oLogEventos.CodCanal    = "2";
                    oLogEventos.CodFlujo    = "5";
                    oLogEventos.NomFlujo    = "FACTURACION Q";
                    oLogEventos.NumContrato = hdd_num_contrato.Value;
                    oLogEventos.NoContrato  = hdd_no_contrato.Value;
                    oLogEventos.PeriodoLog  = sPeriodo;
                    //oLogEventos.RutDeudor = oUsuario.RutLicenciatario;
                    oLogEventos.CodUser = oUsuario.CodUsuario;
                    oLogEventos.RutUser = oUsuario.RutUsuario;
                    oLogEventos.NomUser = oUsuario.Nombres;
                    oLogEventos.ObsLog  = "Se ha autorizado correctamente la Factura Q " + sNumInvoce;
                    oLogEventos.IpLog   = oWeb.GetIpUsuario();
                    oLogEventos.Accion  = "CREAR";
                    oLogEventos.Put();
                }
                oConn.Close();

                StringBuilder js = new StringBuilder();
                js.Append("function LgRespuesta() {");
                js.Append(" window.radalert('La factura ha sido emitida con éxito.', 330, 210); ");
                js.Append(" Sys.Application.remove_load(LgRespuesta); ");
                js.Append("};");
                js.Append("Sys.Application.add_load(LgRespuesta);");
                Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", js.ToString(), true);
            }
        }
        protected void getDataQInvoce(string sQ, string sYear)
        {
            detFactura oFactura = new detFactura();
            DBConn     oConn    = new DBConn();

            if (oConn.Open())
            {
                string        arrMes           = string.Empty;
                string        arrReporteVenta  = string.Empty;
                cReporteVenta oReportForInvoce = new cReporteVenta(ref oConn);
                oReportForInvoce.NumContrato = hdd_num_contrato.Value;
                oReportForInvoce.Periodo     = sQ;
                oReportForInvoce.AnoReporte  = sYear;
                DataTable dtReporteVenta = oReportForInvoce.GetReportForInvoice();
                foreach (DataRow oRowReporte in dtReporteVenta.Rows)
                {
                    arrReporteVenta = (string.IsNullOrEmpty(arrReporteVenta) ? oRowReporte["cod_reporte_venta"].ToString() : arrReporteVenta + ";" + oRowReporte["cod_reporte_venta"].ToString());
                    arrMes          = (string.IsNullOrEmpty(arrMes) ? oRowReporte["mes_reporte"].ToString() : arrMes + ";" + oRowReporte["mes_reporte"].ToString());
                }
                arrayReporteVenta = arrReporteVenta.Split(';');
                arrayMes          = arrMes.Split(';');

                string sNomMesUno  = oWeb.getMes(int.Parse(arrayMes[0].ToString())).ToString();
                string sNomMesDos  = oWeb.getMes(int.Parse(arrayMes[1].ToString())).ToString();
                string sNomMesTres = oWeb.getMes(int.Parse(arrayMes[2].ToString())).ToString();

                oFactura.MesNomUno  = sNomMesUno;
                oFactura.MesNomDos  = sNomMesDos;
                oFactura.MesNomTres = sNomMesTres;
                oFactura.getMakeTable();

                cDetalleVenta oDetalleVenta;

                //cProductosContrato oProductosContrato = new cProductosContrato(ref oConn);
                //oProductosContrato.NumContrato = hdd_num_contrato.Value;

                cRoyaltyContrato oRoyaltyContrato = new cRoyaltyContrato(ref oConn);
                oRoyaltyContrato.NumContrato = hdd_num_contrato.Value;

                DataTable dtProdCont = oRoyaltyContrato.GetByInvoce();
                if (dtProdCont != null)
                {
                    foreach (DataRow oRow in dtProdCont.Rows)
                    {
                        bool   bVenta      = false;
                        string pCodRotalty = string.Empty;
                        double sRoyalty    = 0;
                        double sBdi        = 0;
                        string sPeriodo    = string.Empty;
                        string arrMntMes   = string.Empty;

                        foreach (DataRow oRowReporte in dtReporteVenta.Rows)
                        {
                            sPeriodo = oRowReporte["periodo_q"].ToString() + "/" + oRowReporte["ano_reporte"].ToString();

                            oDetalleVenta = new cDetalleVenta(ref oConn);
                            oDetalleVenta.CodigoReporteVenta = oRowReporte["cod_reporte_venta"].ToString();
                            oDetalleVenta.Marca        = oRow["cod_marca"].ToString();
                            oDetalleVenta.Categoria    = oRow["cod_categoria"].ToString();
                            oDetalleVenta.SubCategoria = oRow["cod_subcategoria"].ToString();
                            oDetalleVenta.CodRoyalty   = oRow["cod_royalty"].ToString();
                            DataTable detVenta = oDetalleVenta.GetByFactura();
                            if (detVenta != null)
                            {
                                if (detVenta.Rows.Count > 0)
                                {
                                    //int intPrecioUni = int.Parse(detVenta.Rows[0]["precio_uni"].ToString());
                                    //int intCantidadVenta = int.Parse(detVenta.Rows[0]["cantidad_venta"].ToString());
                                    //int intPrecioUniDevol = int.Parse(detVenta.Rows[0]["precio_uni_devol"].ToString());
                                    //int intCantDescueDevol = int.Parse(detVenta.Rows[0]["cant_descue_devol"].ToString());
                                    bVenta      = true;
                                    pCodRotalty = detVenta.Rows[0]["cod_royalty"].ToString();
                                    sRoyalty    = double.Parse(detVenta.Rows[0]["royalty"].ToString());
                                    sBdi        = double.Parse(detVenta.Rows[0]["bdi"].ToString());

                                    //int intTotalMes = ((intPrecioUni * intCantidadVenta) - (intPrecioUniDevol * intCantDescueDevol));
                                    double intTotalMes = double.Parse(detVenta.Rows[0]["totalmes"].ToString());

                                    arrMntMes = (string.IsNullOrEmpty(arrMntMes) ? intTotalMes.ToString() : arrMntMes + ";" + intTotalMes.ToString());
                                }
                                else
                                {
                                    arrMntMes = (string.IsNullOrEmpty(arrMntMes) ? "0" : arrMntMes + ";0");
                                }
                            }
                            detVenta = null;
                        }

                        if (bVenta)
                        {
                            string[] arrayMntMes = arrMntMes.Split(';');


                            oFactura.Marca        = oRow["cod_marca"].ToString();
                            oFactura.Categoria    = oRow["cod_categoria"].ToString();
                            oFactura.SubCategoria = oRow["cod_subcategoria"].ToString();
                            oFactura.MesUno       = arrayMntMes[0].ToString();
                            oFactura.MesDos       = arrayMntMes[1].ToString();
                            oFactura.MesTres      = arrayMntMes[2].ToString();
                            oFactura.CodRoyalty   = pCodRotalty;
                            oFactura.Royalty      = sRoyalty.ToString();
                            oFactura.Bdi          = sBdi.ToString();
                            oFactura.Periodo      = sPeriodo;

                            double MntRoyUno  = double.Parse(arrayMntMes[0].ToString()) / getValueUsd(arrayMes[0].ToString(), sYear, pCodRotalty);
                            double MntRoyDos  = double.Parse(arrayMntMes[1].ToString()) / getValueUsd(arrayMes[1].ToString(), sYear, pCodRotalty);
                            double MntRoyTres = double.Parse(arrayMntMes[2].ToString()) / getValueUsd(arrayMes[2].ToString(), sYear, pCodRotalty);

                            double MntTotal = MntRoyUno + MntRoyDos + MntRoyTres;

                            oFactura.MontoRoyaltyUsd = (MntTotal * sRoyalty).ToString();

                            double MntDbiUno  = ((double.Parse(arrayMntMes[0].ToString()) / getValueUsd(arrayMes[0].ToString(), sYear, pCodRotalty)) * (sBdi));
                            double MntDbiDos  = ((double.Parse(arrayMntMes[1].ToString()) / getValueUsd(arrayMes[1].ToString(), sYear, pCodRotalty)) * (sBdi));
                            double MntDbiTres = ((double.Parse(arrayMntMes[2].ToString()) / getValueUsd(arrayMes[2].ToString(), sYear, pCodRotalty)) * (sBdi));

                            oFactura.MontoDbiUsd = (MntDbiUno + MntDbiDos + MntDbiTres).ToString();

                            string iSaldo = string.Empty;
                            oFactura.SaldoAdvanceUsd = "0";
                            oFactura.Saldo           = "0";
                            cAdvanceContrato oAdvanceContrato = new cAdvanceContrato(ref oConn);
                            oAdvanceContrato.NumContrato     = hdd_num_contrato.Value;
                            oAdvanceContrato.CodMarca        = oRow["cod_marca"].ToString();
                            oAdvanceContrato.CodCategoria    = oRow["cod_categoria"].ToString();
                            oAdvanceContrato.CodSubCategoria = oRow["cod_subcategoria"].ToString();
                            oAdvanceContrato.Facturado       = true;
                            DataTable dtAdvanceSaldo = oAdvanceContrato.Get();
                            if (dtAdvanceSaldo != null)
                            {
                                if (dtAdvanceSaldo.Rows.Count > 0)
                                {
                                    if (string.IsNullOrEmpty(dtAdvanceSaldo.Rows[0]["saldo"].ToString()))
                                    {
                                        if (double.Parse(oFactura.MontoRoyaltyUsd) > double.Parse(dtAdvanceSaldo.Rows[0]["valor_original"].ToString()))
                                        {
                                            oFactura.SaldoAdvanceUsd = double.Parse(dtAdvanceSaldo.Rows[0]["valor_original"].ToString()).ToString();
                                            oFactura.Saldo           = "0";
                                        }
                                        else
                                        {
                                            if (double.Parse(oFactura.MontoRoyaltyUsd) > 0)
                                            {
                                                oFactura.SaldoAdvanceUsd = double.Parse(oFactura.MontoRoyaltyUsd).ToString();
                                                oFactura.Saldo           = (double.Parse(dtAdvanceSaldo.Rows[0]["valor_original"].ToString()) - double.Parse(oFactura.MontoRoyaltyUsd)).ToString();
                                            }
                                            else
                                            {
                                                oFactura.SaldoAdvanceUsd = "0";
                                                oFactura.Saldo           = "0";
                                            }
                                        }
                                    }
                                    else if (double.Parse(oFactura.MontoRoyaltyUsd) > double.Parse(dtAdvanceSaldo.Rows[0]["saldo"].ToString()))
                                    {
                                        oFactura.SaldoAdvanceUsd = (double.Parse(dtAdvanceSaldo.Rows[0]["saldo"].ToString())).ToString();
                                        oFactura.Saldo           = "0";
                                    }
                                    else
                                    {
                                        if (double.Parse(oFactura.MontoRoyaltyUsd) > 0)
                                        {
                                            oFactura.SaldoAdvanceUsd = double.Parse(oFactura.MontoRoyaltyUsd).ToString();
                                            oFactura.Saldo           = (double.Parse(dtAdvanceSaldo.Rows[0]["saldo"].ToString()) - double.Parse(oFactura.MontoRoyaltyUsd)).ToString();
                                        }
                                        else
                                        {
                                            oFactura.SaldoAdvanceUsd = "0";
                                            oFactura.Saldo           = "0";
                                        }
                                    }
                                }
                            }
                            dtAdvanceSaldo = null;

                            oFactura.FacturaUsd = (double.Parse(oFactura.MontoRoyaltyUsd) + double.Parse(oFactura.MontoDbiUsd) - double.Parse(oFactura.SaldoAdvanceUsd)).ToString();

                            oFactura.AddRow();
                        }
                    }
                }
                dtReporteVenta = null;
                dtProdCont     = null;

                DataTable dtFactura = oFactura.Get();

                RadGrid oGridFractura = new RadGrid();
                oGridFractura.ID                  = "rdGridFactura";
                oGridFractura.ShowStatusBar       = true;
                oGridFractura.ShowFooter          = true;
                oGridFractura.AutoGenerateColumns = false;
                oGridFractura.Skin                = "Sitefinity";
                oGridFractura.ItemDataBound      += oGridFractura_ItemDataBound;
                oGridFractura.ItemCommand        += oGridFractura_ItemCommand;


                oGridFractura.ExportSettings.HideStructureColumns = true;

                oGridFractura.MasterTableView.AutoGenerateColumns      = false;
                oGridFractura.MasterTableView.ShowHeader               = true;
                oGridFractura.MasterTableView.TableLayout              = GridTableLayout.Fixed;
                oGridFractura.MasterTableView.ShowHeadersWhenNoRecords = true;
                oGridFractura.MasterTableView.ShowFooter               = true;
                oGridFractura.MasterTableView.CommandItemDisplay       = GridCommandItemDisplay.Top;
                oGridFractura.MasterTableView.CommandItemSettings.ShowExportToExcelButton = true;
                oGridFractura.MasterTableView.CommandItemSettings.ShowRefreshButton       = false;
                oGridFractura.MasterTableView.CommandItemSettings.ShowAddNewRecordButton  = false;

                GridBoundColumn oGridBoundColumn;
                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "Marca";
                oGridBoundColumn.HeaderText = "Marca";
                oGridBoundColumn.UniqueName = "Marca";
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "Categoría";
                oGridBoundColumn.HeaderText = "Categoría";
                oGridBoundColumn.UniqueName = "Categoría";
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "Subcategoría";
                oGridBoundColumn.HeaderText = "Subcategoría";
                oGridBoundColumn.UniqueName = "Subcategoría";
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn                             = new GridBoundColumn();
                oGridBoundColumn.DataField                   = sNomMesUno;
                oGridBoundColumn.HeaderText                  = sNomMesUno;
                oGridBoundColumn.UniqueName                  = sNomMesUno;
                oGridBoundColumn.FooterText                  = "Total " + sNomMesUno;
                oGridBoundColumn.DataFormatString            = "{0:N0}";
                oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn                             = new GridBoundColumn();
                oGridBoundColumn.DataField                   = sNomMesDos;
                oGridBoundColumn.HeaderText                  = sNomMesDos;
                oGridBoundColumn.UniqueName                  = sNomMesDos;
                oGridBoundColumn.FooterText                  = "Total " + sNomMesDos;
                oGridBoundColumn.DataFormatString            = "{0:N0}";
                oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn                             = new GridBoundColumn();
                oGridBoundColumn.DataField                   = sNomMesTres;
                oGridBoundColumn.HeaderText                  = sNomMesTres;
                oGridBoundColumn.UniqueName                  = sNomMesTres;
                oGridBoundColumn.FooterText                  = "Total " + sNomMesTres;
                oGridBoundColumn.DataFormatString            = "{0:N0}";
                oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "Royalty (%)";
                oGridBoundColumn.HeaderText = "Royalty (%)";
                oGridBoundColumn.UniqueName = "Royalty (%)";
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "BDI (%)";
                oGridBoundColumn.HeaderText = "BDI (%)";
                oGridBoundColumn.UniqueName = "BDI (%)";
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "Periodo";
                oGridBoundColumn.HeaderText = "Periodo";
                oGridBoundColumn.UniqueName = "Periodo";
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn                             = new GridBoundColumn();
                oGridBoundColumn.DataField                   = "Monto Royalty USD";
                oGridBoundColumn.HeaderText                  = "Monto Royalty USD";
                oGridBoundColumn.UniqueName                  = "Monto Royalty USD";
                oGridBoundColumn.FooterText                  = "Total Royalty USD";
                oGridBoundColumn.DataFormatString            = "{0:N0}";
                oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn                             = new GridBoundColumn();
                oGridBoundColumn.DataField                   = "Monto BDI USD";
                oGridBoundColumn.HeaderText                  = "Monto BDI USD";
                oGridBoundColumn.UniqueName                  = "Monto BDI USD";
                oGridBoundColumn.FooterText                  = "Total BDI USD";
                oGridBoundColumn.DataFormatString            = "{0:N0}";
                oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                /*oGridBoundColumn = new GridBoundColumn();
                 * oGridBoundColumn.DataField = "Saldo Advance USD";
                 * oGridBoundColumn.HeaderText = "Saldo Advance USD";
                 * oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);*/

                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "Saldo Advance USD";
                oGridBoundColumn.HeaderText = "Saldo Advance USD";
                oGridBoundColumn.UniqueName = "Saldo Advance USD";
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridBoundColumn            = new GridBoundColumn();
                oGridBoundColumn.DataField  = "Factura USD";
                oGridBoundColumn.HeaderText = "Factura USD";
                oGridBoundColumn.UniqueName = "Factura USD";
                oGridBoundColumn.FooterText = "Total Factura USD";
                //oGridBoundColumn.DataFormatString = "{0:N0}";
                oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                oGridBoundColumn.Aggregate = GridAggregateFunction.Sum;
                oGridFractura.MasterTableView.Columns.Add(oGridBoundColumn);

                oGridFractura.DataSource = dtFactura;
                idGrilla.Visible         = true;
                idGrilla.Controls.Add(oGridFractura);
                idBtnSave.Visible = true;

                ViewState["dtFactura"]         = dtFactura;
                ViewState["arrayMes"]          = arrayMes;
                ViewState["arrayReporteVenta"] = arrayReporteVenta;

                RadAjaxManager oRadAjaxManager = new RadAjaxManager();
                oRadAjaxManager.ClientEvents.OnRequestStart = "onRequestStart";

                AjaxUpdatedControl oAjaxUpdatedControl = new AjaxUpdatedControl();
                oAjaxUpdatedControl.ControlID = "rdGridFactura";

                AjaxSetting oAjaxSetting = new AjaxSetting();
                oAjaxSetting.AjaxControlID = "rdGridFactura";
                oAjaxSetting.UpdatedControls.Add(oAjaxUpdatedControl);

                oRadAjaxManager.AjaxSettings.Add(oAjaxSetting);
                idGrilla.Controls.Add(oRadAjaxManager);
            }
            oConn.Close();
        }
        protected void BtngEnviar_Click(object sender, EventArgs e)
        {
            string sLicenciatario  = string.Empty;
            string sNoContrato     = string.Empty;
            string sTxtComentarios = txtcomentarios.Text;

            if (!string.IsNullOrEmpty(numcontrato.Value))
            {
                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                    oReporteVenta.NumContrato = numcontrato.Value;
                    oReporteVenta.Periodo     = periodo.Value;
                    oReporteVenta.AnoReporte  = ano_reporte.Value;
                    oReporteVenta.EstReporte  = "C";
                    DataTable dtReporteVenta = oReporteVenta.Get();
                    if (dtReporteVenta != null)
                    {
                        if (dtReporteVenta.Rows.Count > 0)
                        {
                            foreach (DataRow oRow in dtReporteVenta.Rows)
                            {
                                oReporteVenta.CodigoReporteVenta = oRow["cod_reporte_venta"].ToString();
                                oReporteVenta.EstReporte         = "P";
                                oReporteVenta.Accion             = "EDITAR";
                                oReporteVenta.Put();
                            }
                        }
                    }
                    dtReporteVenta = null;

                    cContratos oContratos = new cContratos(ref oConn);
                    oContratos.NumContrato = numcontrato.Value;
                    DataTable dtContrato = oContratos.Get();
                    if (dtContrato != null)
                    {
                        if (dtContrato.Rows.Count > 0)
                        {
                            sNoContrato = dtContrato.Rows[0]["no_contrato"].ToString();

                            cDeudor oDeudor = new cDeudor(ref oConn);
                            oDeudor.NKeyDeudor = dtContrato.Rows[0]["nkey_deudor"].ToString();
                            DataTable dtDeudor = oDeudor.Get();
                            if (dtDeudor != null)
                            {
                                if (dtDeudor.Rows.Count > 0)
                                {
                                    sLicenciatario = dtDeudor.Rows[0]["snombre"].ToString();
                                }
                            }
                            dtDeudor = null;
                        }
                    }
                    dtContrato = null;
                }
                oConn.Close();
            }
            else
            {
                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                    oReporteVenta.EstReporte = "C";
                    DataTable dtReporteVenta = oReporteVenta.GettingForInvoice();
                    if (dtReporteVenta != null)
                    {
                        if (dtReporteVenta.Rows.Count > 0)
                        {
                            foreach (DataRow oRow in dtReporteVenta.Rows)
                            {
                                oReporteVenta.NumContrato = oRow["num_contrato"].ToString();
                                oReporteVenta.Periodo     = oRow["periodo_q"].ToString();
                                oReporteVenta.AnoReporte  = oRow["ano_reporte"].ToString();
                                oReporteVenta.EstReporte  = "C";
                                DataTable dtVenta = oReporteVenta.Get();
                                if (dtVenta != null)
                                {
                                    if (dtVenta.Rows.Count > 0)
                                    {
                                        foreach (DataRow oRowVenta in dtVenta.Rows)
                                        {
                                            oReporteVenta.CodigoReporteVenta = oRowVenta["cod_reporte_venta"].ToString();
                                            oReporteVenta.EstReporte         = "P";
                                            oReporteVenta.Accion             = "EDITAR";
                                            oReporteVenta.Put();
                                        }
                                    }
                                }
                                dtVenta = null;
                            }
                        }
                    }
                    dtReporteVenta = null;
                }
                oConn.Close();
            }

            StringBuilder sMensaje = new StringBuilder();

            sMensaje.Append("<html>");
            sMensaje.Append("<body>");
            if (!string.IsNullOrEmpty(numcontrato.Value))
            {
                sMensaje.Append("Licenciatario : ").Append(sLicenciatario).Append("<br>");
                sMensaje.Append("Contrato : ").Append(sNoContrato).Append("<br>");
                sMensaje.Append("Periodo : ").Append(periodo.Value).Append("<br>");
            }
            sMensaje.Append("Motivo Rechazo : ").Append(sTxtComentarios).Append("<br>");
            sMensaje.Append("</body>");
            sMensaje.Append("</html>");

            Emailing oEmailing = new Emailing();

            oEmailing.FromName = Application["NameSender"].ToString();
            oEmailing.From     = Application["EmailSender"].ToString();
            oEmailing.Address  = Application["EmailSender"].ToString();
            if (!string.IsNullOrEmpty(numcontrato.Value))
            {
                oEmailing.Subject = "Rechazo de factura periodo " + periodo.Value + ", contrato " + sNoContrato + " de Licenciatario " + sLicenciatario;
            }
            else
            {
                oEmailing.Subject = "Rechazo de todas las facturas de periodos del sistema Licenciatario ";
            }
            oEmailing.Body = sMensaje;

            StringBuilder js = new StringBuilder();

            js.Append("function LgRespuesta() {");
            if (oEmailing.EmailSend())
            {
                js.Append(" window.radalert('El rechazo fue enviado exitosamente.', 400, 100,''); ");
            }
            else
            {
                js.Append(" window.radalert('El rechazo no pudo ser enviado, intente más tarde.', 400, 100,''); ");
            }
            js.Append(" Sys.Application.remove_load(LgRespuesta); ");
            js.Append("};");
            js.Append("Sys.Application.add_load(LgRespuesta);");
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "LgRespuesta", js.ToString(), true);

            txtcomentarios.Text    = string.Empty;
            bx_msRechazo.Visible   = false;
            bx_msRealizado.Visible = true;
        }
Ejemplo n.º 6
0
        protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
        {
            switch (e.CommandName)
            {
            case "cmdDelete":
                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    string pCodFactura  = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["codigo_factura"].ToString();
                    string pNumContrato = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["num_contrato"].ToString();
                    string pTipoFactura = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["tipo_factura"].ToString();

                    if (pTipoFactura == "A")
                    {
                        cDetalleFacturaAdvance oDetalleFacturaAdvance = new cDetalleFacturaAdvance(ref oConn);
                        oDetalleFacturaAdvance.CodigoFactura = pCodFactura;
                        oDetalleFacturaAdvance.Accion        = "ELIMINAR";
                        oDetalleFacturaAdvance.Put();

                        cContratos oContratos = new cContratos(ref oConn);
                        oContratos.NumContrato = pNumContrato;
                        oContratos.Accion      = "ELIMINAADVANCE";
                        oContratos.Put();
                    }
                    else if (pTipoFactura == "Q")
                    {
                        cDetalleFactura oDetalleFactura = new cDetalleFactura(ref oConn);
                        oDetalleFactura.CodigoFactura = pCodFactura;
                        DataTable dt = oDetalleFactura.Get();
                        if (dt != null)
                        {
                            if (dt.Rows.Count > 0)
                            {
                                foreach (DataRow oRow in dt.Rows)
                                {
                                    if (!string.IsNullOrEmpty(oRow["saldo_advance_usd"].ToString()))
                                    {
                                        cAdvanceContrato oAdvanceContrato = new cAdvanceContrato(ref oConn);
                                        oAdvanceContrato.NumContrato     = pNumContrato;
                                        oAdvanceContrato.CodMarca        = oRow["cod_marca"].ToString();
                                        oAdvanceContrato.CodCategoria    = oRow["cod_categoria"].ToString();
                                        oAdvanceContrato.CodSubCategoria = oRow["cod_subcategoria"].ToString();
                                        DataTable dtAdvance = oAdvanceContrato.Get();
                                        if (dtAdvance != null)
                                        {
                                            if (dtAdvance.Rows.Count > 0)
                                            {
                                                oAdvanceContrato.Saldo  = (!string.IsNullOrEmpty(dtAdvance.Rows[0]["saldo"].ToString()) ? (double.Parse(dtAdvance.Rows[0]["saldo"].ToString()) + double.Parse(oRow["saldo_advance_usd"].ToString())).ToString() : oRow["saldo_advance_usd"].ToString());
                                                oAdvanceContrato.Accion = "EDITAR";
                                                oAdvanceContrato.Put();
                                            }
                                        }
                                        dtAdvance = null;
                                    }
                                }
                            }
                        }
                        dt = null;

                        oDetalleFactura.Accion = "ELIMINAR";
                        oDetalleFactura.Put();



                        cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                        oReporteVenta.CodigoFactura = pCodFactura;
                        oReporteVenta.Accion        = "ELIMINAFACTURA";
                        oReporteVenta.Put();
                    }
                    else if (pTipoFactura == "S")
                    {
                        cDetFactShortfall oDetFactShortfall = new cDetFactShortfall(ref oConn);
                        oDetFactShortfall.CodigoFactura = pCodFactura;
                        oDetFactShortfall.Accion        = "ELIMINAR";
                        oDetFactShortfall.Put();

                        cMinimoContrato oMinimoContrato = new cMinimoContrato(ref oConn);
                        oMinimoContrato.CodFactShortFall = pCodFactura;
                        oMinimoContrato.Accion           = "ELIMINAFACTURA";
                        oMinimoContrato.Put();
                    }

                    cFactura oFactura = new cFactura(ref oConn);
                    oFactura.CodFactura = pCodFactura;
                    oFactura.Accion     = "ELIMINAR";
                    oFactura.Put();

                    cLogEventos oLogEventos = new cLogEventos(ref oConn);
                    oLogEventos.AccionLog   = "ELIMINACION DE FACTURA DE " + (pTipoFactura == "A" ? "ADVANCE" : (pTipoFactura == "Q" ? "PERIODO" : "SHORTFALL")) + " FE" + pCodFactura;
                    oLogEventos.CodCanal    = "2";
                    oLogEventos.CodFlujo    = "9";
                    oLogEventos.NomFlujo    = "ELIMINACION DE FACTURA";
                    oLogEventos.NumContrato = pNumContrato;
                    oLogEventos.CodUser     = oUsuario.CodUsuario;
                    oLogEventos.RutUser     = oUsuario.RutUsuario;
                    oLogEventos.NomUser     = oUsuario.Nombres;
                    oLogEventos.IpLog       = oWeb.GetIpUsuario();
                    oLogEventos.Accion      = "CREAR";
                    oLogEventos.Put();
                }
                oConn.Close();
                break;
            }

            RadGrid1.Rebind();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            oWeb.ValidaSession();
            oUsuario = oWeb.GetObjUsuario();

            if (!IsPostBack)
            {
                hddCodReporteVenta.Value = oWeb.GetData("CodReporteVenta");
                hddMesReporte.Value      = oWeb.GetData("MesReporte");
                hddAnoReporte.Value      = oWeb.GetData("AnoReporte");
                lblmesventa.Text         = "Mes de venta: " + oWeb.getMes(int.Parse(hddMesReporte.Value)).ToUpper() + " / " + hddAnoReporte.Value;

                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                    oReporteVenta.CodigoReporteVenta = hddCodReporteVenta.Value;
                    DataTable tblReporteVenta = oReporteVenta.Get();
                    if (tblReporteVenta != null)
                    {
                        if (tblReporteVenta.Rows.Count > 0)
                        {
                            cContratos oContratos = new cContratos(ref oConn);
                            oContratos.NumContrato = tblReporteVenta.Rows[0]["num_contrato"].ToString();
                            DataTable dtContrato = oContratos.Get();
                            if (dtContrato != null)
                            {
                                if (dtContrato.Rows.Count > 0)
                                {
                                    lblcontrato.Text     = "Contrato: " + dtContrato.Rows[0]["no_contrato"].ToString();
                                    hddNumContrato.Value = tblReporteVenta.Rows[0]["num_contrato"].ToString();
                                    hddNoContrato.Value  = dtContrato.Rows[0]["no_contrato"].ToString();
                                }
                            }
                            dtContrato = null;
                        }
                    }
                    tblReporteVenta = null;
                }
                oConn.Close();


                if (!string.IsNullOrEmpty(oWeb.GetData("indVentaAnterio")))
                {
                    oConn = new DBConn();
                    if (oConn.Open())
                    {
                        cDetalleVenta DetalleVenta = new cDetalleVenta(ref oConn);
                        DetalleVenta.CodigoReporteVenta = hddCodReporteVenta.Value;
                        DataTable td = DetalleVenta.Get();
                        if (td != null)
                        {
                            if (td.Rows.Count == 0)
                            {
                                btnGuardar.Visible = false;
                                lblAlerta.Text     = "<strong>ATENCION!</strong> Se ha detectado un ingreso erroneo de ventas para el mes de <strong>" + oWeb.getMes(int.Parse(hddMesReporte.Value)).ToUpper() + "</strong>. Para corregirlo por favor presione el botón <strong>Cancelar</strong>, y luego vuelva a cargar las ventas.";
                            }
                            else
                            {
                                lblAlerta.Text = "<strong>ATENCION!</strong> Usted tiene ventas ingresadas para el mes de <strong>" + oWeb.getMes(int.Parse(hddMesReporte.Value)).ToUpper() + "</strong>, si esta de acuerdo con estas, presione el botón <strong>Autorizar Periodo</strong> para terminar con el proceso de lo contrario presione el botón <strong>Cancelar</strong>.";
                            }
                        }
                        td = null;
                    }
                    oConn.Close();
                }
                else
                {
                    lblAlerta.Text = "<strong>ATENCION!</strong> Para terminar el proceso, presione el botón <strong>Autorizar Periodo</strong>, de lo contrario presione el botón <strong>Cancelar</strong>.";
                }
            }
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string sPeriodo = oWeb.getPeriodoVenta(oWeb.getMes(int.Parse(hddMesReporte.Value)).ToUpper());

            if (Page.IsValid)
            {
                try
                {
                    DBConn oConn = new DBConn();
                    if (oConn.Open())
                    {
                        cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                        oReporteVenta.CodigoReporteVenta = hddCodReporteVenta.Value;
                        oReporteVenta.FechaReporte       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        oReporteVenta.Facturado          = "N";
                        oReporteVenta.EstReporte         = "L";
                        oReporteVenta.Periodo            = sPeriodo;
                        oReporteVenta.DeclaraMovimiento  = "S";
                        oReporteVenta.Accion             = "EDITAR";
                        oReporteVenta.Put();

                        cLogEventos oLogEventos = new cLogEventos(ref oConn);
                        oLogEventos.AccionLog   = "AUTORIZACIÓN OK DE REPORTE DE VENTAS";
                        oLogEventos.CodCanal    = "2";
                        oLogEventos.CodFlujo    = "2";
                        oLogEventos.NomFlujo    = "INGRESO DE VENTAS LICENCIATARIO";
                        oLogEventos.NumContrato = hddNumContrato.Value;
                        oLogEventos.NoContrato  = hddNoContrato.Value;
                        oLogEventos.PeriodoLog  = sPeriodo + " / " + hddAnoReporte.Value;
                        oLogEventos.NkeyDeudor  = oUsuario.NKeyDeudor;
                        oLogEventos.RutDeudor   = oUsuario.RutLicenciatario;
                        oLogEventos.NomDeudor   = oUsuario.Licenciatario;
                        oLogEventos.CodUser     = oUsuario.CodUsuario;
                        oLogEventos.RutUser     = oUsuario.RutUsuario;
                        oLogEventos.NomUser     = oUsuario.Nombres;
                        oLogEventos.ObsLog      = "Se a autorizado correctamente el inhgreso de ventas.";
                        oLogEventos.IpLog       = oWeb.GetIpUsuario();
                        oLogEventos.Accion      = "CREAR";
                        oLogEventos.Put();
                    }
                    oConn.Close();

                    StringBuilder sUrl = new StringBuilder();
                    sUrl.Append("ventas_ingresadas.aspx?MesReporte=").Append(hddMesReporte.Value);
                    sUrl.Append("&AnoReporte=").Append(hddAnoReporte.Value);
                    sUrl.Append("&NoContrato=").Append(hddNoContrato.Value);
                    Response.Redirect(sUrl.ToString(), false);
                }
                catch (Exception Ex)
                {
                    DBConn oConn = new DBConn();
                    if (oConn.Open())
                    {
                        cLogEventos oLogEventos = new cLogEventos(ref oConn);
                        oLogEventos.AccionLog   = "ERROR EN AUTORIZACION DE INGRESO DE REPORTE DE VENTAS";
                        oLogEventos.CodCanal    = "2";
                        oLogEventos.CodFlujo    = "2";
                        oLogEventos.NomFlujo    = "INGRESO DE VENTAS LICENCIATARIO";
                        oLogEventos.PeriodoLog  = sPeriodo + " / " + hddAnoReporte.Value;
                        oLogEventos.NkeyDeudor  = oUsuario.NKeyDeudor;
                        oLogEventos.RutDeudor   = oUsuario.RutLicenciatario;
                        oLogEventos.NomDeudor   = oUsuario.Licenciatario;
                        oLogEventos.CodUser     = oUsuario.CodUsuario;
                        oLogEventos.RutUser     = oUsuario.RutUsuario;
                        oLogEventos.NomUser     = oUsuario.Nombres;
                        oLogEventos.ObsErrorLog = Ex.Message + " / " + Ex.Source;
                        oLogEventos.IpLog       = oWeb.GetIpUsuario();
                        oLogEventos.Accion      = "CREAR";
                        oLogEventos.Put();

                        cReporteVenta oReporteVenta = new cReporteVenta(ref oConn);
                        oReporteVenta.CodigoReporteVenta = hddCodReporteVenta.Value;
                        oReporteVenta.FechaReporte       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        oReporteVenta.Facturado          = "N";
                        oReporteVenta.EstReporte         = "P";
                        oReporteVenta.Periodo            = sPeriodo;
                        oReporteVenta.Accion             = "EDITAR";
                        oReporteVenta.Put();
                    }
                    oConn.Close();

                    Response.Redirect("error_ingreso_venta.aspx", false);
                }
            }
        }