Пример #1
0
        private void facturasToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            cFactura cFactura = new cFactura();

            cFactura.MdiParent = this;
            cFactura.Show();
        }
Пример #2
0
        private cFactura ObtenerFactura()
        {
            FacturaBL ObjetoFactura = new FacturaBL();
            cFactura  Factura       = new cFactura();

            Factura.ClienteID      = cbbCliente.SelectedValue;
            Factura.TipoDocumento  = "C";
            Factura.CondicionVenta = ObtenerCondiciones();
            //Obtenemos el ultimo documento del tipo Factura
            //Factura.DocumentoID = ObtenerNumeroDocumento();
            Factura.DescuentoTotal   = _TotalDescuentos;
            Factura.DireccionEnvio   = txtEnviarA.Text;
            Factura.EstatusID        = "O";
            Factura.FechaCreacion    = DateTime.Now.Date;
            Factura.FechaEnvio       = dtpFechaEnvio.Value.Date;
            Factura.ImpuestosTotal   = _TotalImpuestos;
            Factura.Observacion      = txtObservaciones.Text;
            Factura.SubTotal         = _SubTotal;
            Factura.TotalGeneral     = _TotalGeneral;
            Factura.FechaVencimiento = dtpFechaVencimiento.Value.Date;
            Factura.VendedorID       = ObtenerVendedor();


            return(Factura);
        }
Пример #3
0
        public Int64 Crear(cFactura Factura)
        {
            try
            {
                //FACTURAS A CREDITO
                if (Factura.TipoDocumento == "F" && (String)Factura.CondicionVenta == "CE")
                {
                    //VALIDAMOS EL BALANCE DEL CLIENTE
                    //LIMITE DE CREDITO
                    decimal LimiteCredito = ClienteDA.BuscarPorID((Int32)Factura.ClienteID).LimiteCredito;
                    //BALANCE ACTUAL DE CLIENTE
                    decimal Balance = ClienteDA.BuscarPorID((Int32)Factura.ClienteID).Balance;

                    if ((Factura.TotalGeneral + Balance) <= LimiteCredito)
                    {
                        return(FacturaDA.Crear(Factura));
                    }
                    else
                    {
                        throw new Exception("El cliente ha excedido el limite de credito permitido");
                    }
                }
                //DEVOLUCION Y COTIZACIONES
                else
                {
                    return(FacturaDA.Crear(Factura));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
 public void Cancelar(Int32 FacturaID)
 {
     try
     {
         cFactura Factura = FacturaDA.BuscarPorID(FacturaID);
         //Si el documento no ha sido cambiado el estatus de Original no puede ser cancelado
         if (Factura.EstatusID.ToString() == "O")
         {
             //Verificamos si la factura contiene movimientos en Cuentas por Cobrar
             List <cCuentasCobrar> Cuenta = (from c in CuentaCobrarDA.ListaCargosPagos(Factura.DocumentoID.ToString(), (Int32)Factura.ClienteID)
                                             where c.CodigoConcepto.ToString() != "Factura"
                                             select c).ToList();
             if (Cuenta.Count == 0)
             {
                 FacturaDA.Cancelar(FacturaID);
             }
             else
             {
                 throw new Exception("El documento posee movimientos contabilizados, no puede ser cancelada");
             }
         }
         else
         {
             throw new Exception("El documento posee movimientos contabilizados, no puede ser cancelada");
         }
     }
     catch (Exception Ex)
     {
         throw Ex;
     }
 }
        protected void rdGridFactura_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
        {
            DBConn oConn = new DBConn();

            if (oConn.Open())
            {
                cFactura oFactura = new cFactura(ref oConn);
                oFactura.NkeyDeudor  = cmbox_licenciatario.SelectedValue;
                oFactura.NumContrato = cmbox_contrato.SelectedValue;
                if ((ddlist_ano_ini.SelectedValue != "") && (ddlist_mes_ini.SelectedValue != ""))
                {
                    if (ddlist_mes_ini.SelectedValue != "ShortFall")
                    {
                        oFactura.Periodo = ddlist_mes_ini.SelectedValue + (ddlist_mes_ini.SelectedValue == "Advance" ? " " : "/") + ddlist_ano_ini.SelectedValue;
                    }
                    else
                    {
                        oFactura.Periodo     = ddlist_ano_ini.SelectedValue;
                        oFactura.TipoFactura = "S";
                    }
                }
                DataTable dtFacura = oFactura.GetStatusInvoceFinanzas();
                rdGridFactura.DataSource = dtFacura;
            }
            oConn.Close();
        }
Пример #6
0
        public static List <cFactura> Filtrar(
            String TipoDocumento,
            Int64 ClienteID,
            Int64 DocumentoDesde,
            Int64 DocumentoHasta,
            DateTime FechaDesde,
            DateTime FechaHasta,
            Boolean IndGenerada,
            Boolean IndCancelada)
        {
            try
            {
                //Declaramos la conexion hacia la base de datos
                using (SqlConnection Conn = new SqlConnection(cConexion.CadenaConexion()))
                {
                    Conn.Open();
                    //Nombre del procedimiento
                    string StoreProc = "uspFiltroDevolucion";
                    //Creamos el command para la insercion
                    SqlCommand Cmd = new SqlCommand(StoreProc, Conn);
                    Cmd.CommandType = CommandType.StoredProcedure;

                    Cmd.Parameters.AddWithValue("TipoDocumento", TipoDocumento);
                    Cmd.Parameters.AddWithValue("ClienteID", ClienteID);
                    Cmd.Parameters.AddWithValue("DocumentoDesde", DocumentoDesde);
                    Cmd.Parameters.AddWithValue("DocumentoHasta", DocumentoHasta);
                    Cmd.Parameters.AddWithValue("FechaDesde", FechaDesde);
                    Cmd.Parameters.AddWithValue("FechaHasta", FechaHasta);
                    Cmd.Parameters.AddWithValue("IndGenerada", IndGenerada);
                    Cmd.Parameters.AddWithValue("IndCancelada", IndCancelada);
                    //Ejecutamos el lector
                    SqlDataReader Reader = Cmd.ExecuteReader();


                    List <cFactura> Lista = new List <cFactura>();
                    while (Reader.Read())
                    {
                        cFactura Factura = new cFactura();
                        Factura.ID            = Reader.GetInt64(Reader.GetOrdinal("ID"));
                        Factura.DocumentoID   = Reader.GetInt64(Reader.GetOrdinal("DocumentoID"));
                        Factura.ClienteID     = Reader.GetString(Reader.GetOrdinal("NombreCliente"));
                        Factura.FechaCreacion = Reader.GetDateTime(Reader.GetOrdinal("FechaCreacion"));
                        Factura.EstatusID     = Reader.GetString(Reader.GetOrdinal("Estatus"));
                        Factura.TotalGeneral  = Reader.GetDecimal(Reader.GetOrdinal("TotalGeneral"));

                        //Agregamos el articulo a la lista
                        Lista.Add(Factura);
                    }
                    //Cerramos la conexion
                    Conn.Close();
                    //Retornamos la lista de clientes
                    return(Lista);
                }
            }
            catch (SqlException Ex)
            {
                throw Ex;
            }
        }
Пример #7
0
        protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            DBConn oConn = new DBConn();

            if (oConn.Open())
            {
                cFactura oFactura = new cFactura(ref oConn);
                oFactura.NkeyDeudor = hdd_nkey_deudor.Value;
                oFactura.CodFactura = (!string.IsNullOrEmpty(txt_factura.Text) ? txt_factura.Text.Substring(2) : string.Empty);
                DataTable dtFacura = oFactura.GetStatusInvoceFinanzas();
                RadGrid1.DataSource = dtFacura;
            }
            oConn.Close();
        }
Пример #8
0
 protected void rdGridFactura_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
 {
     if ((cmbox_contrato.SelectedValue != "0") && (!string.IsNullOrEmpty(cmbox_contrato.SelectedValue)))
     {
         DBConn oConn = new DBConn();
         if (oConn.Open())
         {
             cFactura oFactura = new cFactura(ref oConn);
             oFactura.NumContrato = cmbox_contrato.SelectedValue;
             DataTable dtFacura = oFactura.GetStatusInvoce();
             rdGridFactura.DataSource = dtFacura;
         }
         oConn.Close();
     }
 }
        protected void rdGridReporteVenta_ItemCommand(object source, GridCommandEventArgs e)
        {
            if (e.CommandName == RadGrid.ExportToExcelCommandName)
            {
                rdGridReporteVenta.ExportSettings.ExportOnlyData  = true;
                rdGridReporteVenta.ExportSettings.IgnorePaging    = true;
                rdGridReporteVenta.ExportSettings.OpenInNewWindow = true;
                rdGridReporteVenta.ExportSettings.FileName        = "resumen_contrato_" + DateTime.Now.ToString("yyyyMMdd");
                rdGridReporteVenta.MasterTableView.ExportToExcel();
                //rdGridReporteVenta.AllowPaging = true;
                //sMeses = oWeb.getPeriodoMesesQ(cmbox_periodo.SelectedValue);
                //sPeriodo = sMeses.Split(',');
                //rdGridReporteVenta.Rebind();
            }

            if (e.CommandName == "BajarComprobante")
            {
                GridDataItem item = (GridDataItem)e.Item;
                if ((!string.IsNullOrEmpty(item["FechaComprobante"].Text)) && (item["FechaComprobante"].Text != "&nbsp;"))
                {
                    DBConn oConn = new DBConn();
                    if (oConn.Open())
                    {
                        cFactura oFactura = new cFactura(ref oConn);
                        oFactura.NumInvoice = item["num_factura"].Text;
                        DataTable dtFactura = oFactura.Get();
                        if (dtFactura != null)
                        {
                            if (dtFactura.Rows.Count > 0)
                            {
                                Response.Redirect("downloadcomprobantesii.ashx?pCodComprobante=" + dtFactura.Rows[0]["cod_comprobante"].ToString() + "&NumContrato=" + item["Contrato"].Text);
                            }
                        }
                        dtFactura = null;
                    }
                    oConn.Close();
                }
                else
                {
                    StringBuilder scriptstring = new StringBuilder();
                    scriptstring.Append(" window.radalert('No existe comprobante para este Q.', 330, 210); ");
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "radalert", scriptstring.ToString(), true);
                }
            }
        }
Пример #10
0
        public static Int64 Crear(cFactura Factura)
        {
            try
            {
                //Declaramos la conexion hacia la base de datos
                using (SqlConnection Conn = new SqlConnection(cConexion.CadenaConexion()))
                {
                    Conn.Open();
                    //Nombre del procedimiento
                    string StoreProc = "uspInsertarFactura";
                    //Creamos el command para la insercion
                    SqlCommand Cmd = new SqlCommand(StoreProc, Conn);
                    Cmd.CommandType = CommandType.StoredProcedure;

                    //Parametros
                    Cmd.Parameters.AddWithValue("ClienteID", Factura.ClienteID);
                    Cmd.Parameters.AddWithValue("TipoDocumento", Factura.TipoDocumento);
                    Cmd.Parameters.AddWithValue("FechaCreacion", Factura.FechaCreacion);
                    Cmd.Parameters.AddWithValue("FechaEnvio", Factura.FechaEnvio);
                    Cmd.Parameters.AddWithValue("FechaVencimiento", Factura.FechaVencimiento);
                    Cmd.Parameters.AddWithValue("SubTotal", Factura.SubTotal);
                    Cmd.Parameters.AddWithValue("ImpuestosTotal", Factura.ImpuestosTotal);
                    Cmd.Parameters.AddWithValue("CondicionVenta", Factura.CondicionVenta);
                    Cmd.Parameters.AddWithValue("DescuentoTotal", Factura.DescuentoTotal);
                    Cmd.Parameters.AddWithValue("TotalGeneral", Factura.TotalGeneral);
                    Cmd.Parameters.AddWithValue("EstatusID", Factura.EstatusID); //Estatus inicial Original
                    Cmd.Parameters.AddWithValue("Observacion", Factura.Observacion);
                    Cmd.Parameters.AddWithValue("DireccionEnvio", Factura.DireccionEnvio);
                    Cmd.Parameters.AddWithValue("Referencia", Factura.Referencia);

                    Cmd.Parameters.AddWithValue("VendedorID", Factura.VendedorID);

                    Int64 FacturaID = Convert.ToInt64(Cmd.ExecuteScalar());
                    //Cerra la conexion
                    Conn.Close();

                    return(FacturaID);
                }
            }
            catch (SqlException Ex)
            {
                throw Ex;
            }
        }
Пример #11
0
        public static cFactura BuscarPorID(Int64 DocumentoID, String TipoDocumento)
        {
            try
            {
                //Declaramos la conexion hacia la base de datos
                using (SqlConnection Conn = new SqlConnection(cConexion.CadenaConexion()))
                {
                    Conn.Open();
                    //Nombre del procedimiento
                    string StoreProc = "uspBuscarFacturaPorTipoID";
                    //Creamos el command para la insercion
                    SqlCommand Cmd = new SqlCommand(StoreProc, Conn);
                    Cmd.CommandType = CommandType.StoredProcedure;
                    //Parametros
                    Cmd.Parameters.AddWithValue("DocumentoID", DocumentoID);
                    Cmd.Parameters.AddWithValue("TipoDocumento", TipoDocumento);
                    SqlDataReader Reader = Cmd.ExecuteReader();

                    cFactura Factura = new cFactura();
                    while (Reader.Read())
                    {
                        Factura.ID             = Reader.GetInt64(Reader.GetOrdinal("ID"));
                        Factura.ClienteID      = Reader.GetInt64(Reader.GetOrdinal("ClienteID"));
                        Factura.FechaCreacion  = Reader.GetDateTime(Reader.GetOrdinal("FechaCreacion"));
                        Factura.FechaEnvio     = Reader.GetDateTime(Reader.GetOrdinal("FechaEnvio"));
                        Factura.ImpuestosTotal = Reader.GetDecimal(Reader.GetOrdinal("ImpuestosTotal"));
                        Factura.SubTotal       = Reader.GetDecimal(Reader.GetOrdinal("Subtotal"));
                        Factura.DescuentoTotal = Reader.GetDecimal(Reader.GetOrdinal("DescuentoTotal"));
                        Factura.TotalGeneral   = Reader.GetDecimal(Reader.GetOrdinal("TotalGeneral"));
                        Factura.EstatusID      = Reader.GetString(Reader.GetOrdinal("EstatusID"));
                        Factura.VendedorID     = Reader.GetInt32(Reader.GetOrdinal("VendedorID"));
                    }
                    Conn.Close();
                    return(Factura);
                }
            }
            catch (SqlException Ex)
            {
                throw Ex;
            }
        }
        protected void rdGridFactura_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                GridDataItem item = (GridDataItem)e.Item;
                DataRowView  row  = (DataRowView)e.Item.DataItem;

                string sSaldo     = string.Empty;
                string sFechaPago = string.Empty;

                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cFactura oFactura = new cFactura(ref oConn);
                    oFactura.NumContrato = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["num_contrato"].ToString();
                    oFactura.CodFactura  = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["codigo_factura"].ToString();
                    DataTable dtFactura = oFactura.GetSaldoFechaPago();
                    if (dtFactura != null)
                    {
                        if (dtFactura.Rows.Count > 0)
                        {
                            sSaldo     = (!string.IsNullOrEmpty(dtFactura.Rows[0]["saldo"].ToString()) ? dtFactura.Rows[0]["saldo"].ToString() : string.Empty);
                            sFechaPago = (!string.IsNullOrEmpty(dtFactura.Rows[0]["fecha_pago"].ToString()) ? dtFactura.Rows[0]["fecha_pago"].ToString() : string.Empty);
                        }
                    }
                    dtFactura = null;
                }
                oConn.Close();

                item["date_invoce"].Text = DateTime.Parse(row["date_invoce"].ToString()).ToString("dd-MM-yyyy");
                item["due_date"].Text    = DateTime.Parse(row["due_date"].ToString()).ToString("dd-MM-yyyy");
                item["total"].Text       = double.Parse(row["total"].ToString()).ToString("N0");
                item["saldo"].Text       = string.Empty;
                item["fecha_pago"].Text  = string.Empty;

                item["saldo"].Text      = (!string.IsNullOrEmpty(sSaldo) ? double.Parse(sSaldo).ToString("N0") : string.Empty);
                item["fecha_pago"].Text = (!string.IsNullOrEmpty(sFechaPago) ? DateTime.Parse(sFechaPago).ToString("dd-MM-yyyy") : string.Empty);
            }
        }
Пример #13
0
        protected void cmbox_contrato_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbox_contrato.SelectedValue != "0")
            {
                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cFactura oFactura = new cFactura(ref oConn);
                    oFactura.NumContrato       = cmbox_contrato.SelectedValue;
                    oFactura.isNullComprobante = true;
                    DataTable dtComprobanteImpuesto = oFactura.Get();

                    if (dtComprobanteImpuesto != null)
                    {
                        if (dtComprobanteImpuesto.Rows.Count > 0)
                        {
                            ddlmesventa.Items.Clear();
                            ddlmesventa.Items.Add(new ListItem("<< Seleccione Periodo >>", "0"));
                            foreach (DataRow oRow in dtComprobanteImpuesto.Rows)
                            {
                                ddlmesventa.Items.Add(new ListItem(oRow["periodo"].ToString(), oRow["codigo_factura"].ToString()));
                            }
                        }
                        else
                        {
                            ddlmesventa.Items.Clear();
                            ddlmesventa.Items.Add(new ListItem("<< No existen meses a declarar >>", "0"));
                        }
                    }
                    dtComprobanteImpuesto = null;
                }
                oConn.Close();
            }
            else
            {
                ddlmesventa.Items.Clear();
                ddlmesventa.Items.Add(new ListItem("<< No existen meses a declarar >>", "0"));
            }
        }
        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);
        }
Пример #15
0
        public void CancelarDocumento(cCuentasCobrar Cuenta)
        {
            //Cancelacion de un abono
            //Localizamos el concepto para verificar el tipo
            cConcepto Concepto = ConcCxCDA.BuscarPorID((Int16)Cuenta.CodigoConcepto);

            //Tipo Abono
            if (Concepto.Tipo.ToString() == "A")
            {
                //Verificamos si el documento es tipo Nota de Credito y si esta cancelado
                if (Concepto.Descripcion.ToString() == "Nota de Credito")
                {
                    //Documento Nota de Credito
                    cFactura stNotaCredito = FacturaDA.BuscarPorID(Cuenta.CodigoFactura, "D");
                    //Verificamos Si esta Cancelado
                    if (stNotaCredito.EstatusID.ToString() == "C")
                    {
                        //Cancelamos la transaccion
                        Cuenta.Estatus = false;
                        GuardarCambios(Cuenta);
                    }
                    else
                    {
                        throw new Exception("El documento no puede ser cancelado, la nota de credito se encuentra vigente en el sistema");
                    }
                }
                else
                {
                    //Si es un Abono cancelamos la transaccion
                    Cuenta.Estatus = false;
                    GuardarCambios(Cuenta);
                }
            }
            else
            {
                //Verificamos el estatus de la factura en caso de que sea
                if (Concepto.Descripcion.ToString() == "Factura")
                {
                    cFactura stFactura = FacturaDA.BuscarPorID(Cuenta.CodigoFactura, "F");

                    //Si la factura esta cancelada cancelamos la transaccion
                    if (stFactura.EstatusID.ToString() == "C")
                    {
                        Cuenta.Estatus = false;
                        GuardarCambios(Cuenta);
                    }
                    else
                    {
                        throw new Exception("El documento no puede ser cancelado, la factura se encuentra vigente en el sistema");
                    }
                }
                else
                {
                    //Si es un cargo aplicado verificamos que no tenga pagos vigentes
                    List <cCuentasCobrar> ListaPagos = (from c in ListaPagoCargos(Cuenta.CodigoFactura.ToString(), (Int32)Cuenta.CodigoCliente)
                                                        select c).ToList();

                    //Si tiene Cargos o pagos relacionados
                    if (ListaPagos.Count == 0)
                    {
                        Cuenta.Estatus = false;
                        GuardarCambios(Cuenta);
                    }
                    else
                    {
                        throw new Exception("El documento no puede ser cancelado, el documento contiene pagos o cargos aplicados");
                    }
                }
            }
        }
Пример #16
0
 public bool GenerarFactura(cFactura pFactura)
 {
     throw new NotImplementedException();
 }
        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);
            }
        }
Пример #18
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 putAprobarAdvanceAll(string pNumContrato, string pNoContrato)
        {
            StringBuilder sHtml = new StringBuilder();

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

            if (ViewState["FacturaAdvance_" + pNumContrato] != null)
            {
                DataTable dtFactura = ViewState["FacturaAdvance_" + pNumContrato] 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 = pNumContrato;
                            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();

                            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();

                                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 = pNumContrato;
                            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");
                            string 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 = pNumContrato;
                            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]", pNoContrato);
                            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/") + pNoContrato + "/"))
                            {
                                Directory.CreateDirectory(Server.MapPath("Facturas_Advance/") + pNoContrato + "/");
                            }

                            string sFileHtml = Server.MapPath("Facturas_Advance/") + pNoContrato + "/" + sNumInvoce + ".html";
                            File.WriteAllText(sFileHtml, sHtml.ToString(), Encoding.UTF8);

                            cLogEventos oLogEventos = new cLogEventos(ref oConn);
                            oLogEventos.AccionLog   = "APROBACION MASIVA PRE-FACTURA ADVANCE";
                            oLogEventos.CodCanal    = "2";
                            oLogEventos.CodFlujo    = "4";
                            oLogEventos.NomFlujo    = "FACTURACION ADVANCE";
                            oLogEventos.NumContrato = pNumContrato;
                            oLogEventos.NoContrato  = pNoContrato;
                            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();
                    }
                }
                dtFactura = null;
            }
        }
Пример #20
0
        private void BuscarFactura()
        {
            DetalleFacturaBL ObjetoDetalle = new DetalleFacturaBL();
            FacturaBL        ObjetoFactura = new FacturaBL();
            Int64            ID;

            if (txtReferencia.Text != String.Empty)
            {
                //Obtenemos el ID del Documento por medio del numero de documento
                ID = Convert.ToInt64(txtReferencia.Text);

                //Buscamos la cotizacion que tiene este numero de documento
                cFactura Factura = ObjetoFactura.BuscarPorID(ID, "F");
                //Verificamos que obtuvimos algun resultado
                if (Int64.TryParse(Factura.ID.ToString(), out ID))
                {
                    //Verificamos que la factura no este cancelada ni se encuentre devuelta
                    if (Factura.EstatusID.ToString() != "C" && Factura.EstatusID.ToString() != "D")
                    {
                        //Guardamos el ID de la FacturA
                        Int64 FacturaID = Factura.ID;
                        Int32 ClienteID = Convert.ToInt32(Factura.ClienteID);

                        //Asignamos los datos del cliente que se encuentra en la cotizacion
                        AsignarDatosCliente(ObjetoCliente.BuscarPorID(ClienteID));

                        //Buscamos la lista de Articulos que se encuentran en la cotizacion
                        List <cDetalleFactura> ListaDetalle = ObjetoDetalle.ListarDetalle(FacturaID, "F");

                        //Objeto Inventario para realizar operaciones
                        InventarioBL ObjetoInventario = new InventarioBL();
                        foreach (cDetalleFactura Detalle in ListaDetalle)
                        {
                            cInventario Articulo = ObjetoInventario.BuscarPorID(Detalle.ArticuloID);

                            //Insertamos los articulos en el DataGrid
                            InsertarLineaGrid(Detalle.ArticuloID,
                                              Articulo.CodigoArticulo,
                                              Articulo.Descripcion,
                                              Detalle.Cantidad,
                                              Detalle.Precio,
                                              Detalle.ImpuestoValor,
                                              (Detalle.ImpuestoValor / 100) * Detalle.Precio,
                                              Detalle.DescuentoValor,
                                              (Detalle.DescuentoValor / 100) * Detalle.Precio,
                                              (((Detalle.Cantidad * Detalle.Precio) - ((Detalle.DescuentoValor / 100) * Detalle.Precio)) + ((Detalle.ImpuestoValor / 100) * Detalle.Precio)),
                                              Detalle.Costo,
                                              Detalle.UnidadVentaID,
                                              Detalle.TipoProducto);
                        }
                    }
                    else
                    {
                        throw new Exception("La factura se encuentra cancelada o devuelta y no puede ser procesada");
                    }
                }
                else
                {
                    throw new Exception("La factura solicitada no se encuentra en la lista");
                }
            }
        }
Пример #21
0
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string FileName        = string.Empty;
            string FilePath        = string.Empty;
            string sNoContrato     = string.Empty;
            string sPeriodo        = ddlmesventa.Items[ddlmesventa.SelectedIndex].Text.ToUpper();
            string pCodComprobante = string.Empty;

            try
            {
                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cContratos oContrato = new cContratos(ref oConn);
                    oContrato.NumContrato = cmbox_contrato.SelectedValue;
                    DataTable tbContrato = oContrato.Get();
                    if (tbContrato != null)
                    {
                        if (tbContrato.Rows.Count > 0)
                        {
                            sNoContrato = tbContrato.Rows[0]["no_contrato"].ToString();
                        }
                    }
                    tbContrato = null;
                }
                oConn.Close();

                if (chkbox_declaracion.Checked)
                {
                    bool bExito = false;
                    if (RadUpload1.UploadedFiles.Count > 0)
                    {
                        oConn = new DBConn();
                        if (oConn.Open())
                        {
                            foreach (UploadedFile ofile in RadUpload1.UploadedFiles)
                            {
                                //string FileName = ofile.GetName();
                                FileName = cmbox_contrato.SelectedValue + "_" + ddlmesventa.Items[ddlmesventa.SelectedIndex].Text.Replace("/", "_") + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
                                //FilePath = FilePath + FileName;
                                //FilePath = Server.MapPath("rps_licenciatariosmattel/") + cmbox_contrato.Items[cmbox_contrato.SelectedIndex].Text + "\\" + FileName;
                                //if (!Directory.Exists(Server.MapPath("rps_licenciatariosmattel/") + cmbox_contrato.Items[cmbox_contrato.SelectedIndex].Text + "\\"))
                                //  Directory.CreateDirectory(Server.MapPath("rps_licenciatariosmattel/") + cmbox_contrato.Items[cmbox_contrato.SelectedIndex].Text + "\\");

                                FilePath = Server.MapPath("rps_licenciatariosmattel/") + "\\" + FileName;
                                if (!Directory.Exists(Server.MapPath("rps_licenciatariosmattel/") + "\\"))
                                {
                                    Directory.CreateDirectory(Server.MapPath("rps_licenciatariosmattel/") + "\\");
                                }

                                ofile.SaveAs(FilePath);

                                cComprobanteImpuesto oComprobanteImpuesto = new cComprobanteImpuesto(ref oConn);
                                oComprobanteImpuesto.NumContrato        = cmbox_contrato.SelectedValue;
                                oComprobanteImpuesto.Periodo            = ddlmesventa.Items[ddlmesventa.SelectedIndex].Text;
                                oComprobanteImpuesto.NomComprobante     = FileName;
                                oComprobanteImpuesto.DeclaraMovimiento  = "S";
                                oComprobanteImpuesto.RepositorioArchivo = "L";
                                oComprobanteImpuesto.Accion             = "CREAR";
                                oComprobanteImpuesto.Put();

                                cFactura oFactura = new cFactura(ref oConn);
                                oFactura.CodFactura     = ddlmesventa.SelectedValue;
                                oFactura.CodComprobante = oComprobanteImpuesto.CodComprobante;
                                oFactura.Accion         = "EDITAR";
                                oFactura.Put();

                                if (string.IsNullOrEmpty(oComprobanteImpuesto.Error))
                                {
                                    pCodComprobante = oComprobanteImpuesto.CodComprobante;
                                    bExito          = true;
                                }
                            }
                            oConn.Close();
                        }
                    }

                    if (bExito)
                    {
                        oConn = new DBConn();
                        if (oConn.Open())
                        {
                            cLogEventos oLogEventos = new cLogEventos(ref oConn);
                            oLogEventos.AccionLog           = "SUBIR ARCHIVO COMPROBANTE DE IMPUESTO";
                            oLogEventos.CodCanal            = "2";
                            oLogEventos.CodFlujo            = "3";
                            oLogEventos.NomFlujo            = "COMPROBANTE DE IMPUESTO";
                            oLogEventos.ArchLog             = FileName;
                            oLogEventos.NumContrato         = cmbox_contrato.SelectedValue;
                            oLogEventos.NoContrato          = sNoContrato;
                            oLogEventos.PeriodoLog          = sPeriodo;
                            oLogEventos.RutDeudor           = oUsuario.RutLicenciatario;
                            oLogEventos.CodUser             = oUsuario.CodUsuario;
                            oLogEventos.RutUser             = oUsuario.RutUsuario;
                            oLogEventos.NomUser             = oUsuario.Nombres;
                            oLogEventos.ObsLog              = "Se a cargado el archivo de comprobante de impuesto con éxito.";
                            oLogEventos.IpLog               = oWeb.GetIpUsuario();
                            oLogEventos.IndReporsitorioArch = "L";
                            oLogEventos.Accion              = "CREAR";
                            oLogEventos.Put();
                        }
                        oConn.Close();

                        StringBuilder js = new StringBuilder();
                        js.Append("function LgRespuesta() {");
                        js.Append(" window.radalert('El comprobante pago de impuesto a sido cargado 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);

                        chkbox_declaracion.Checked = false;
                        ddlmesventa.Items.Clear();
                        cmbox_contrato.Items.Clear();
                        loadContrato();
                    }
                }
                else
                {
                    oConn = new DBConn();
                    if (oConn.Open())
                    {
                        cComprobanteImpuesto oComprobanteImpuesto = new cComprobanteImpuesto(ref oConn);
                        oComprobanteImpuesto.NumContrato       = cmbox_contrato.SelectedValue;
                        oComprobanteImpuesto.Periodo           = ddlmesventa.Items[ddlmesventa.SelectedIndex].Text;
                        oComprobanteImpuesto.NomComprobante    = string.Empty;
                        oComprobanteImpuesto.DeclaraMovimiento = "N";
                        oComprobanteImpuesto.Accion            = "CREAR";
                        oComprobanteImpuesto.Put();

                        cFactura oFactura = new cFactura(ref oConn);
                        oFactura.CodFactura     = ddlmesventa.SelectedValue;
                        oFactura.CodComprobante = oComprobanteImpuesto.CodComprobante;
                        oFactura.Accion         = "EDITAR";
                        oFactura.Put();

                        chkbox_declaracion.Checked = false;
                        ddlmesventa.Items.Clear();
                        cmbox_contrato.Items.Clear();
                        loadContrato();

                        oConn = new DBConn();
                        if (oConn.Open())
                        {
                            cLogEventos oLogEventos = new cLogEventos(ref oConn);
                            oLogEventos.AccionLog   = "SE DECLARA EL PERIODO SIN MOVIMIENTOS";
                            oLogEventos.CodCanal    = "2";
                            oLogEventos.CodFlujo    = "3";
                            oLogEventos.NomFlujo    = "COMPROBANTE DE IMPUESTO";
                            oLogEventos.NumContrato = cmbox_contrato.SelectedValue;
                            oLogEventos.NoContrato  = sNoContrato;
                            oLogEventos.PeriodoLog  = sPeriodo + " / " + ViewState["ano_reporte"].ToString();
                            oLogEventos.RutDeudor   = oUsuario.RutLicenciatario;
                            oLogEventos.CodUser     = oUsuario.CodUsuario;
                            oLogEventos.RutUser     = oUsuario.RutUsuario;
                            oLogEventos.NomUser     = oUsuario.Nombres;
                            oLogEventos.ObsLog      = "Se a declarado el periodo sin movimientos con éxito.";
                            oLogEventos.IpLog       = oWeb.GetIpUsuario();
                            oLogEventos.Accion      = "CREAR";
                            oLogEventos.Put();
                        }
                        oConn.Close();

                        StringBuilder js = new StringBuilder();
                        js.Append("function LgRespuesta() {");
                        js.Append(" window.radalert('Se ha declarado el periodo sin movimientos 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);
                    }
                    oConn.Close();
                }
            }
            catch (Exception Ex)
            {
                DBConn oConn = new DBConn();
                if (oConn.Open())
                {
                    cLogEventos oLogEventos = new cLogEventos(ref oConn);
                    oLogEventos.AccionLog   = "ERROR SUBIR ARCHIVO COMPROBANTE DE IMPUESTO";
                    oLogEventos.CodCanal    = "2";
                    oLogEventos.CodFlujo    = "3";
                    oLogEventos.NomFlujo    = "COMPROBANTE DE IMPUESTO";
                    oLogEventos.PeriodoLog  = sPeriodo;
                    oLogEventos.RutDeudor   = oUsuario.RutLicenciatario;
                    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();
                }
                oConn.Close();

                Session["Error"] = "Error en la carga de archivo de comprobante de impuesto. Por favor comuniquese con el administrador.";
                Response.Redirect("error_ingreso_venta.aspx?sTypeError=2", 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);
        }
Пример #23
0
        private void FacturaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form consulta = new cFactura();

            consulta.Show();
        }
        public DataTable dtStatusdeFactura()
        {
            DataTable table = new DataTable("StatusdeFactura");

            table.Columns.Add(new DataColumn("Licenciatario", typeof(string)));
            table.Columns.Add(new DataColumn("Contrato", typeof(string)));
            table.Columns.Add(new DataColumn("Número Invoice", typeof(string)));
            table.Columns.Add(new DataColumn("Periodo", typeof(string)));
            table.Columns.Add(new DataColumn("Emisión", typeof(string)));
            table.Columns.Add(new DataColumn("Vencimiento", typeof(string)));
            table.Columns.Add(new DataColumn("Monto", typeof(string)));
            table.Columns.Add(new DataColumn("Saldo", typeof(string)));
            table.Columns.Add(new DataColumn("Fecha de Pago", typeof(string)));

            DBConn oConn = new DBConn();

            if (oConn.Open())
            {
                cFactura oFactura = new cFactura(ref oConn);
                oFactura.NkeyDeudor  = cmbox_licenciatario.SelectedValue;
                oFactura.NumContrato = cmbox_contrato.SelectedValue;
                if ((ddlist_ano_ini.SelectedValue != "") && (ddlist_mes_ini.SelectedValue != ""))
                {
                    if (ddlist_mes_ini.SelectedValue != "ShortFall")
                    {
                        oFactura.Periodo = ddlist_mes_ini.SelectedValue + (ddlist_mes_ini.SelectedValue == "Advance" ? " " : "/") + ddlist_ano_ini.SelectedValue;
                    }
                    else
                    {
                        oFactura.Periodo     = ddlist_ano_ini.SelectedValue;
                        oFactura.TipoFactura = "S";
                    }
                }
                DataTable dt = oFactura.GetStatusInvoceFinanzas();
                foreach (DataRow oRow in dt.Rows)
                {
                    string   sSaldo            = string.Empty;
                    string   sFechaPago        = string.Empty;
                    cFactura GetSaldoFechaPago = new cFactura(ref oConn);
                    GetSaldoFechaPago.NumContrato = oRow["num_contrato"].ToString();
                    GetSaldoFechaPago.CodFactura  = oRow["codigo_factura"].ToString();
                    DataTable dtFactura = GetSaldoFechaPago.GetSaldoFechaPago();
                    if (dtFactura != null)
                    {
                        if (dtFactura.Rows.Count > 0)
                        {
                            sSaldo     = (!string.IsNullOrEmpty(dtFactura.Rows[0]["saldo"].ToString()) ? dtFactura.Rows[0]["saldo"].ToString() : string.Empty);
                            sFechaPago = (!string.IsNullOrEmpty(dtFactura.Rows[0]["fecha_pago"].ToString()) ? dtFactura.Rows[0]["fecha_pago"].ToString() : string.Empty);
                        }
                    }
                    GetSaldoFechaPago = null;

                    DataRow newRow = table.NewRow();
                    newRow["Licenciatario"]  = oRow["licenciatario"].ToString();
                    newRow["Contrato"]       = oRow["no_contrato"].ToString();
                    newRow["Número Invoice"] = oRow["num_invoice"].ToString();
                    newRow["Periodo"]        = oRow["periodo"].ToString();
                    newRow["Emisión"]        = DateTime.Parse(oRow["date_invoce"].ToString()).ToString("dd-MM-yyyy");                                  // oRow["date_invoce"].ToString();
                    newRow["Vencimiento"]    = DateTime.Parse(oRow["due_date"].ToString()).ToString("dd-MM-yyyy");                                     //oRow["due_date"].ToString();
                    newRow["Monto"]          = double.Parse(oRow["total"].ToString()).ToString("N0", oCulture);                                        //oRow["total"].ToString();
                    newRow["Saldo"]          = (!string.IsNullOrEmpty(sSaldo) ? double.Parse(sSaldo).ToString("N0", oCulture) : string.Empty);         //oRow["saldo"].ToString();
                    newRow["Fecha de Pago"]  = (!string.IsNullOrEmpty(sFechaPago) ? DateTime.Parse(sFechaPago).ToString("dd-MM-yyyy") : string.Empty); //oRow["fecha_pago"].ToString();
                    table.Rows.Add(newRow);
                }
            }
            oConn.Close();

            return(table);
        }