protected void btnAprobar_Click(object sender, EventArgs e)
        {
            string        sNumInvoce = 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["FacturaAdvance"] != null)
            {
                DataTable dtFactura = ViewState["FacturaAdvance"] as DataTable;
                if (dtFactura != null)
                {
                    if (dtFactura.Rows.Count > 0)
                    {
                        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 = "A";
                            oFactura.Accion      = "CREAR";
                            oFactura.Put();

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

                            string pCodFactura = oFactura.CodFactura;

                            foreach (DataRow oRow in dtFactura.Rows)
                            {
                                string sDescripcionMarca = oRow["Marca"].ToString();
                                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(oRow["Marca"].ToString());

                                string pCodCategoria    = null;
                                string pCodSubCategoria = null;

                                if (!string.IsNullOrEmpty(oRow["CodCategoria"].ToString()))
                                {
                                    pCodCategoria = oRow["CodCategoria"].ToString();
                                    sDataProductos.Append(" / " + oRow["Categoria"].ToString());
                                }

                                if (!string.IsNullOrEmpty(oRow["CodSubCategoria"].ToString()))
                                {
                                    pCodSubCategoria = oRow["CodSubCategoria"].ToString();
                                    sDataProductos.Append(" / " + oRow["SubCategoria"].ToString());
                                }

                                sDataProductos.Append("</font></div>");
                                sDataProductos.Append("</div>");

                                cDetalleFacturaAdvance oDetalleFacturaAdvance = new cDetalleFacturaAdvance(ref oConn);
                                oDetalleFacturaAdvance.CodigoFactura   = pCodFactura;
                                oDetalleFacturaAdvance.CodMarca        = oRow["CodMarca"].ToString();
                                oDetalleFacturaAdvance.CodCategoria    = pCodCategoria;
                                oDetalleFacturaAdvance.CodSubCategoria = pCodSubCategoria;
                                oDetalleFacturaAdvance.AdvanceUsd      = double.Parse(oRow["Advance USD"].ToString()).ToString();
                                oDetalleFacturaAdvance.Accion          = "CREAR";
                                oDetalleFacturaAdvance.Put();

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

                                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;\">$</font></div>");
                                sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">").Append(double.Parse(oRow["Advance USD"].ToString()).ToString("#,##0.00")).Append("</font></div>");
                                sDataValorProductos.Append("</div>");

                                dTotalFacturaUsd = dTotalFacturaUsd + double.Parse(oRow["Advance 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    = "Advance " + DateTime.Now.Year.ToString();
                            oFactura.NumInvoice = sNumInvoce;
                            oFactura.Accion     = "EDITAR";
                            oFactura.Put();

                            cContratos oContratos = new cContratos(ref oConn);
                            oContratos.NumContrato = hdd_num_contrato.Value;
                            oContratos.Accion      = "EDITAR";
                            oContratos.Put();

                            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]", "Advance " + DateTime.Now.Year.ToString());
                            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_Advance/") + hdd_no_contrato.Value + "/"))
                            {
                                Directory.CreateDirectory(Server.MapPath("Facturas_Advance/") + hdd_no_contrato.Value + "/");
                            }

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

                if (bExito)
                {
                    idGrilla.Visible  = false;
                    idBtnSave.Visible = false;

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

                        cLogEventos oLogEventos = new cLogEventos(ref oConn);
                        oLogEventos.AccionLog   = "APROBAR POR DETALLE PRE-FACTURA ADVANCE";
                        oLogEventos.CodCanal    = "2";
                        oLogEventos.CodFlujo    = "4";
                        oLogEventos.NomFlujo    = "FACTURACION ADVANCE";
                        oLogEventos.NumContrato = hdd_num_contrato.Value;
                        oLogEventos.NoContrato  = sNoContrato;
                        oLogEventos.PeriodoLog  = "Advance " + DateTime.Now.Year.ToString();
                        //oLogEventos.RutDeudor = oUsuario.RutLicenciatario;
                        oLogEventos.CodUser = oUsuario.CodUsuario;
                        oLogEventos.RutUser = oUsuario.RutUsuario;
                        oLogEventos.NomUser = oUsuario.Nombres;
                        oLogEventos.ObsLog  = "Se ha autorizado correctamente la Factura Advance " + 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 getDataMinimiGaranty()
        {
            MinimoGarantizado oMinimoGarantizado = new MinimoGarantizado();

            oMinimoGarantizado.ViewClient = true;
            oMinimoGarantizado.Periodo    = cmbox_periodo_minimo.SelectedValue;
            oMinimoGarantizado.getMakeTable();
            DBConn oConn = new DBConn();

            if (oConn.Open())
            {
                DateTime dFechaIni = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(0, 10));
                DateTime dFechaFin = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(13, 10));

                cMinimoContrato oMinimoContrato = new cMinimoContrato(ref oConn);
                oMinimoContrato.NkeyDeudor  = cmbox_licenciatario.SelectedValue;
                oMinimoContrato.NumContrato = cmbox_contrato.SelectedValue;
                oMinimoContrato.FechaInicio = dFechaIni.ToString("yyyyMMdd");
                oMinimoContrato.FechaFinal  = dFechaFin.ToString("yyyyMMdd");

                DataTable dtMinimo = oMinimoContrato.Get();
                if (dtMinimo != null)
                {
                    foreach (DataRow oRow in dtMinimo.Rows)
                    {
                        int iYearInicio = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(0, 10)).Year;
                        int iYearFinal  = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(13, 10)).Year;

                        cFactura oFactura = new cFactura(ref oConn);
                        oFactura.NumContrato = (!string.IsNullOrEmpty(cmbox_contrato.SelectedValue) ? cmbox_contrato.SelectedValue : oRow["num_contrato"].ToString());
                        oFactura.TipoFactura = "T";
                        oFactura.PeriodoAno  = (iYearInicio.ToString() == iYearFinal.ToString() ? "'" + iYearInicio.ToString() + "'" : "'" + iYearInicio.ToString() + "','" + iYearFinal.ToString() + "'");

                        DataTable dtFactura = oFactura.GetForMinimo();
                        if (dtFactura != null)
                        {
                            if (dtFactura.Rows.Count > 0)
                            {
                                double iTotal = 0;

                                oMinimoGarantizado.Licenciatario = oRow["licenciatario"].ToString();
                                oMinimoGarantizado.NoContrato    = oRow["contrato"].ToString();
                                oMinimoGarantizado.Marca         = oRow["marca"].ToString();
                                oMinimoGarantizado.Categoria     = oRow["categoria"].ToString();
                                oMinimoGarantizado.SubCategoria  = oRow["subcategoria"].ToString();
                                oMinimoGarantizado.MinimoUsd     = oRow["minimo"].ToString();

                                oMinimoGarantizado.Advance       = "0";
                                oMinimoGarantizado.PeriodoUno    = "0";
                                oMinimoGarantizado.PeriodoDos    = "0";
                                oMinimoGarantizado.PeriodoTres   = "0";
                                oMinimoGarantizado.PeriodoCuatro = "0";

                                foreach (DataRow oRowFact in dtFactura.Rows)
                                {
                                    cDetalleFacturaAdvance oDetalleFacturaAdvance = new cDetalleFacturaAdvance(ref oConn);
                                    oDetalleFacturaAdvance.CodigoFactura   = oRowFact["codigo_factura"].ToString();
                                    oDetalleFacturaAdvance.CodMarca        = oRow["cod_marca"].ToString();
                                    oDetalleFacturaAdvance.CodCategoria    = oRow["cod_categoria"].ToString();
                                    oDetalleFacturaAdvance.CodSubCategoria = oRow["cod_subcategoria"].ToString();
                                    DataTable dtDetalleFactAdvance = oDetalleFacturaAdvance.GetByMinimo();
                                    if (dtDetalleFactAdvance != null)
                                    {
                                        if (dtDetalleFactAdvance.Rows.Count > 0)
                                        {
                                            oMinimoGarantizado.Advance = dtDetalleFactAdvance.Rows[0]["advance_usd"].ToString();
                                        }
                                    }
                                    dtDetalleFactAdvance = null;

                                    cDetalleFactura DetalleFactura = new cDetalleFactura(ref oConn);
                                    DetalleFactura.CodigoFactura   = oRowFact["codigo_factura"].ToString();
                                    DetalleFactura.CodMarca        = oRow["cod_marca"].ToString();
                                    DetalleFactura.CodCategoria    = oRow["cod_categoria"].ToString();
                                    DetalleFactura.CodSubcategoria = oRow["cod_subcategoria"].ToString();
                                    DataTable dtDetalleFactura = DetalleFactura.GetByMinimo();
                                    if (dtDetalleFactura != null)
                                    {
                                        if (dtDetalleFactura.Rows.Count > 0)
                                        {
                                            Web      oWeb          = new Web();
                                            DateTime fecha_inicial = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(0, 10));
                                            DateTime fecha_final   = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(13));

                                            int lngCantMes    = Math.Abs((fecha_final.Month - fecha_inicial.Month) + 12 * (fecha_final.Year - fecha_inicial.Year)) + 1;
                                            int lngTrimestres = lngCantMes / 3;

                                            if (lngTrimestres > 0)
                                            {
                                                DateTime dMonthForQ = fecha_inicial;
                                                for (int i = 0; i < lngTrimestres; i++)
                                                {
                                                    dMonthForQ = dMonthForQ.AddMonths(2);
                                                    if (oRowFact["periodo"].ToString() == (oWeb.getPeriodoByNumMonth(dMonthForQ.Month) + "/" + dMonthForQ.Year.ToString()))
                                                    {
                                                        if (i == 0)
                                                        {
                                                            oMinimoGarantizado.PeriodoUno = (double.Parse(dtDetalleFactura.Rows[0]["monto_royalty_usd"].ToString()) - double.Parse(dtDetalleFactura.Rows[0]["saldo_advance_usd"].ToString())).ToString();
                                                        }
                                                        //oMinimoGarantizado.PeriodoUno = dtDetalleFactura.Rows[0]["factura_usd"].ToString();
                                                        else if (i == 1)
                                                        {
                                                            oMinimoGarantizado.PeriodoDos = (double.Parse(dtDetalleFactura.Rows[0]["monto_royalty_usd"].ToString()) - double.Parse(dtDetalleFactura.Rows[0]["saldo_advance_usd"].ToString())).ToString();
                                                        }
                                                        else if (i == 2)
                                                        {
                                                            oMinimoGarantizado.PeriodoTres = (double.Parse(dtDetalleFactura.Rows[0]["monto_royalty_usd"].ToString()) - double.Parse(dtDetalleFactura.Rows[0]["saldo_advance_usd"].ToString())).ToString();
                                                        }
                                                        else if (i == 3)
                                                        {
                                                            oMinimoGarantizado.PeriodoCuatro = (double.Parse(dtDetalleFactura.Rows[0]["monto_royalty_usd"].ToString()) - double.Parse(dtDetalleFactura.Rows[0]["saldo_advance_usd"].ToString())).ToString();
                                                        }
                                                    }
                                                    dMonthForQ = dMonthForQ.AddMonths(1);
                                                }
                                            }
                                            else
                                            {
                                                oMinimoGarantizado.PeriodoUno = (double.Parse(dtDetalleFactura.Rows[0]["monto_royalty_usd"].ToString()) - double.Parse(dtDetalleFactura.Rows[0]["saldo_advance_usd"].ToString())).ToString();
                                            }
                                        }
                                    }
                                    dtDetalleFactura = null;
                                }

                                iTotal = double.Parse(oMinimoGarantizado.MinimoUsd) - (!string.IsNullOrEmpty(oMinimoGarantizado.Advance) ? double.Parse(oMinimoGarantizado.Advance) : 0);
                                iTotal = iTotal - (!string.IsNullOrEmpty(oMinimoGarantizado.PeriodoUno) ? double.Parse(oMinimoGarantizado.PeriodoUno) : 0);
                                iTotal = iTotal - (!string.IsNullOrEmpty(oMinimoGarantizado.PeriodoDos) ? double.Parse(oMinimoGarantizado.PeriodoDos) : 0);
                                iTotal = iTotal - (!string.IsNullOrEmpty(oMinimoGarantizado.PeriodoTres) ? double.Parse(oMinimoGarantizado.PeriodoTres) : 0);
                                iTotal = iTotal - (!string.IsNullOrEmpty(oMinimoGarantizado.PeriodoCuatro) ? double.Parse(oMinimoGarantizado.PeriodoCuatro) : 0);

                                if (iTotal < 0)
                                {
                                    iTotal = 0;
                                }

                                oMinimoGarantizado.Saldo = iTotal.ToString();
                                oMinimoGarantizado.AddRow();
                            }
                        }
                        dtFactura = null;
                    }
                }
                dtMinimo = null;
            }
            oConn.Close();

            DataTable dtMinimoGarantizado = oMinimoGarantizado.Get();


            RadGrid oGridMinimo = new RadGrid();

            oGridMinimo.ShowStatusBar       = true;
            oGridMinimo.ShowFooter          = true;
            oGridMinimo.AutoGenerateColumns = false;
            oGridMinimo.Skin = "Sitefinity";
            //oGridMinimo.ItemDataBound += oGridMinimo_ItemDataBound;
            oGridMinimo.MasterTableView.AutoGenerateColumns = false;
            oGridMinimo.MasterTableView.ShowHeader          = true;
            oGridMinimo.MasterTableView.ShowFooter          = true;
            oGridMinimo.MasterTableView.TableLayout         = GridTableLayout.Fixed;
            //oGridMinimo.MasterTableView.EditMode = GridEditMode.EditForms;
            oGridMinimo.MasterTableView.ShowHeadersWhenNoRecords = true;

            GridBoundColumn oGridBoundColumn;

            oGridBoundColumn            = new GridBoundColumn();
            oGridBoundColumn.DataField  = "Licenciatario";
            oGridBoundColumn.HeaderText = "Licenciatario";
            oGridBoundColumn.UniqueName = "Licenciatario";
            oGridMinimo.MasterTableView.Columns.Add(oGridBoundColumn);

            oGridBoundColumn            = new GridBoundColumn();
            oGridBoundColumn.DataField  = "Contrato";
            oGridBoundColumn.HeaderText = "Contrato";
            oGridBoundColumn.UniqueName = "Contrato";
            oGridMinimo.MasterTableView.Columns.Add(oGridBoundColumn);

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

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

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

            oGridBoundColumn                             = new GridBoundColumn();
            oGridBoundColumn.DataField                   = "Mínimo Garantizado USD";
            oGridBoundColumn.HeaderText                  = "Mínimo Garantizado USD";
            oGridBoundColumn.UniqueName                  = "Mínimo Garantizado USD";
            oGridBoundColumn.DataFormatString            = "{0:N0}";
            oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
            oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
            oGridMinimo.MasterTableView.Columns.Add(oGridBoundColumn);

            oGridBoundColumn                             = new GridBoundColumn();
            oGridBoundColumn.DataField                   = "Factura Advance";
            oGridBoundColumn.HeaderText                  = "Factura Advance";
            oGridBoundColumn.UniqueName                  = "Factura Advance";
            oGridBoundColumn.DataFormatString            = "{0:N}";
            oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
            oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
            oGridMinimo.MasterTableView.Columns.Add(oGridBoundColumn);

            DateTime fechainicial = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(0, 10));
            DateTime fechafinal   = DateTime.Parse(cmbox_periodo_minimo.SelectedValue.Substring(13));

            int iCantMes    = Math.Abs((fechafinal.Month - fechainicial.Month) + 12 * (fechafinal.Year - fechainicial.Year)) + 1;
            int iTrimestres = iCantMes / 3;

            if (iTrimestres > 0)
            {
                DateTime dMonthForQ = fechainicial;
                for (int i = 0; i < iTrimestres; i++)
                {
                    dMonthForQ                                   = dMonthForQ.AddMonths(2);
                    oGridBoundColumn                             = new GridBoundColumn();
                    oGridBoundColumn.DataField                   = "Factura " + oWeb.getPeriodoByNumMonth(dMonthForQ.Month) + "/" + dMonthForQ.Year.ToString();
                    oGridBoundColumn.HeaderText                  = "Factura " + oWeb.getPeriodoByNumMonth(dMonthForQ.Month) + "/" + dMonthForQ.Year.ToString();
                    oGridBoundColumn.UniqueName                  = "Factura " + oWeb.getPeriodoByNumMonth(dMonthForQ.Month) + "/" + dMonthForQ.Year.ToString();
                    oGridBoundColumn.DataFormatString            = "{0:N}";
                    oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                    oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
                    oGridMinimo.MasterTableView.Columns.Add(oGridBoundColumn);
                    dMonthForQ = dMonthForQ.AddMonths(1);
                }
            }
            else
            {
                DateTime iMonth = fechainicial.AddMonths(2);
                oGridBoundColumn                             = new GridBoundColumn();
                oGridBoundColumn.DataField                   = "Factura " + oWeb.getPeriodoByNumMonth(iMonth.Month) + "/" + iMonth.Year.ToString();
                oGridBoundColumn.HeaderText                  = "Factura " + oWeb.getPeriodoByNumMonth(iMonth.Month) + "/" + iMonth.Year.ToString();
                oGridBoundColumn.UniqueName                  = "Factura " + oWeb.getPeriodoByNumMonth(iMonth.Month) + "/" + iMonth.Year.ToString();
                oGridBoundColumn.DataFormatString            = "{0:N}";
                oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
                oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
                oGridMinimo.MasterTableView.Columns.Add(oGridBoundColumn);
            }

            oGridBoundColumn                             = new GridBoundColumn();
            oGridBoundColumn.DataField                   = "Saldo";
            oGridBoundColumn.HeaderText                  = "Saldo";
            oGridBoundColumn.UniqueName                  = "Saldo";
            oGridBoundColumn.DataFormatString            = "{0:N0}";
            oGridBoundColumn.FooterAggregateFormatString = "{0:N0}";
            oGridBoundColumn.Aggregate                   = GridAggregateFunction.Sum;
            oGridMinimo.MasterTableView.Columns.Add(oGridBoundColumn);

            oGridMinimo.DataSource = dtMinimoGarantizado;
            oGridMinimo.Rebind();
            idGrilla.Visible = true;
            idGrilla.Controls.Add(oGridMinimo);
        }
Пример #3
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();
        }