/// <summary>
        /// Eliminar los datos de una carga de un ATM.
        /// </summary>
        /// <param name="c">Objeto FacturacionTransportadora con los datos de la carga</param>
        public void eliminarFacturacionTransportadora(FacturacionTransportadora c)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("DeleteFacturacionTransportadora");

            _manejador.agregarParametro(comando, "@carga", c, SqlDbType.Int);

            try
            {
                _manejador.ejecutarConsultaActualizacion(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorFacturacionTransportadoraEliminacion");
            }
        }
        /// <summary>
        /// Actualizar los datos de la carga de un ATM.
        /// </summary>
        /// <param name="c">Objeto FacturacionTransportadora con los datos de la carga</param>
        public void actualizarFacturacionTransportadora(ref FacturacionTransportadora c)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("UpdateFacturacionTransportadora");

            _manejador.agregarParametro(comando, "@fecha_fin", c.Fecha, SqlDbType.Date);
            _manejador.agregarParametro(comando, "@fecha", c.FechaFin, SqlDbType.Date);
            _manejador.agregarParametro(comando, "@transportadora", c.Empresa_encargada, SqlDbType.TinyInt);
            _manejador.agregarParametro(comando, "@cliente", c.Cliente, SqlDbType.SmallInt);
            _manejador.agregarParametro(comando, "@colaborador", c.ColaboradoRegistro, SqlDbType.Int);
            _manejador.agregarParametro(comando, "@observaciones", c.Observaciones, SqlDbType.NVarChar);
            _manejador.agregarParametro(comando, "@id", c.ID, SqlDbType.Int);

            try
            {
                _manejador.ejecutarConsultaActualizacion(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorFacturacionTransportadoraActualizacion");
            }
        }
        /// <summary>
        /// Obtener los nombres jurídicos de un cliente.
        /// </summary>
        /// <param name="c">Cliente para el cual se obtiene la lista de nombres</param>
        public void obtenerCategoriaResumenFacturacion(ref FacturacionTransportadora c)
        {
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectCategoriaResumenFacturacion");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@resumen", c.ID, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int    id                       = (int)datareader["pk_ID"];
                    string centro_costos            = (string)datareader["CentroCostos"];
                    string modelo                   = (string)datareader["Modelo"];
                    string factura                  = (string)datareader["Factura"];
                    CategoriasFacturacion categoria = (CategoriasFacturacion)datareader["Tipo"];
                    decimal monto                   = Convert.ToDecimal(datareader["Monto"]);
                    decimal creditos_debitos        = Convert.ToDecimal(datareader["CreditosDebitos"]);

                    CategoriaFacturacionTransportadora categoria_facturacion = new CategoriaFacturacionTransportadora(id: id, centro_costos: centro_costos, modelo: modelo,
                                                                                                                      factura: factura, monto: monto, creditosdebitos: creditos_debitos, categoria: categoria);


                    c.agregarCategoria(categoria_facturacion);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Llena los datos de la Facturacion en la tabla
        /// </summary>
        /// <param name="f">Objeto Facturacion con los datos a pintar</param>
        private void llenarDatos(FacturacionTransportadora f)
        {
            //foreach (CategoriaFacturacionTransportadora c in f.ListaCategoria)
            //{
            //    switch (c.Categoria)
            //    {

            //        case CategoriasFacturacion.Cuenta_Corriente_Entrantes:

            //            dgvCargas[1, 0].Value = c.Modelo;
            //            dgvCargas[2, 0].Value = c.CentroCostos;
            //            dgvCargas[3, 0].Value = c.Factura;
            //            dgvCargas[4, 0].Value = c.Monto;
            //            dgvCargas[5, 0].Value = c.MontoCreditoDebito;

            //            break;

            //        case (CategoriasFacturacion.Cuenta_Corriente_Salientes):

            //            dgvCargas[1, 1].Value = c.Modelo;
            //            dgvCargas[2, 1].Value = c.CentroCostos;
            //            dgvCargas[3, 1].Value = c.Factura;
            //            dgvCargas[4, 1].Value = c.Monto;
            //            dgvCargas[5, 1].Value = c.MontoCreditoDebito;

            //            break;

            //        case (CategoriasFacturacion.Sucursales):

            //            dgvCargas[1, 2].Value = c.Modelo;
            //            dgvCargas[2, 2].Value = c.CentroCostos;
            //            dgvCargas[3, 2].Value = c.Factura;
            //            dgvCargas[4, 2].Value = c.Monto;
            //            dgvCargas[5, 2].Value = c.MontoCreditoDebito;

            //            break;



            //        case (CategoriasFacturacion.Material_Operativo):

            //            dgvCargas[1, 3].Value = c.Modelo;
            //            dgvCargas[2, 3].Value = c.CentroCostos;
            //            dgvCargas[3, 3].Value = c.Factura;
            //            dgvCargas[4, 3].Value = c.Monto;
            //            dgvCargas[5, 3].Value = c.MontoCreditoDebito;

            //            break;



            //        case (CategoriasFacturacion.Procesamiento):

            //            dgvCargas[1, 4].Value = c.Modelo;
            //            dgvCargas[2, 4].Value = c.CentroCostos;
            //            dgvCargas[3, 4].Value = c.Factura;
            //            dgvCargas[4, 4].Value = c.Monto;
            //            dgvCargas[5, 4].Value = c.MontoCreditoDebito;

            //            break;

            //        case (CategoriasFacturacion.Servicios_Especiales):

            //            dgvCargas[1, 5].Value = c.Modelo;
            //            dgvCargas[2, 5].Value = c.CentroCostos;
            //            dgvCargas[3, 5].Value = c.Factura;
            //            dgvCargas[4, 5].Value = c.Monto;
            //            dgvCargas[5, 5].Value = c.MontoCreditoDebito;

            //            break;


            //        case (CategoriasFacturacion.Eticket):

            //            dgvCargas[1, 6].Value = c.Modelo;
            //            dgvCargas[2, 6].Value = c.CentroCostos;
            //            dgvCargas[3, 6].Value = c.Factura;
            //            dgvCargas[4, 6].Value = c.Monto;
            //            dgvCargas[5, 6].Value = c.MontoCreditoDebito;

            //            break;

            //    }
            //}
        }
Exemplo n.º 5
0
        /// <summary>
        /// Llena los datos de la Facturacion en la tabla
        /// </summary>
        /// <param name="f">Objeto Facturacion con los datos a pintar</param>
        private void llenarDatos(FacturacionTransportadora f)
        {
            if (f.Cliente != null)
            {
                cboCliente.Text = f.Cliente.ToString();
            }
            else
            {
                cboCliente.SelectedIndex = 0;
            }

            if (f.Empresa_encargada != null)
            {
                cboTransportadora.Text = f.Empresa_encargada.ToString();
            }
            else
            {
                cboTransportadora.SelectedIndex = 0;
            }


            txtObservaciones.Text = f.Observaciones;

            foreach (CategoriaFacturacionTransportadora c in f.ListaCategoria)
            {
                switch (c.Categoria)
                {
                case CategoriasFacturacion.Cuenta_Corriente_Entrantes:

                    dgvFacturar[1, 0].Value = c.Modelo;
                    dgvFacturar[2, 0].Value = c.CentroCostos;
                    dgvFacturar[3, 0].Value = c.Factura;
                    dgvFacturar[4, 0].Value = c.Monto;
                    dgvFacturar[5, 0].Value = c.MontoCreditoDebito;

                    break;

                case (CategoriasFacturacion.Cuenta_Corriente_Salientes):

                    dgvFacturar[1, 1].Value = c.Modelo;
                    dgvFacturar[2, 1].Value = c.CentroCostos;
                    dgvFacturar[3, 1].Value = c.Factura;
                    dgvFacturar[4, 1].Value = c.Monto;
                    dgvFacturar[5, 1].Value = c.MontoCreditoDebito;

                    break;

                case (CategoriasFacturacion.Sucursales):

                    dgvFacturar[1, 2].Value = c.Modelo;
                    dgvFacturar[2, 2].Value = c.CentroCostos;
                    dgvFacturar[3, 2].Value = c.Factura;
                    dgvFacturar[4, 2].Value = c.Monto;
                    dgvFacturar[5, 2].Value = c.MontoCreditoDebito;

                    break;



                case (CategoriasFacturacion.Material_Operativo):

                    dgvFacturar[1, 3].Value = c.Modelo;
                    dgvFacturar[2, 3].Value = c.CentroCostos;
                    dgvFacturar[3, 3].Value = c.Factura;
                    dgvFacturar[4, 3].Value = c.Monto;
                    dgvFacturar[5, 3].Value = c.MontoCreditoDebito;

                    break;



                case (CategoriasFacturacion.Procesamiento):

                    dgvFacturar[1, 4].Value = c.Modelo;
                    dgvFacturar[2, 4].Value = c.CentroCostos;
                    dgvFacturar[3, 4].Value = c.Factura;
                    dgvFacturar[4, 4].Value = c.Monto;
                    dgvFacturar[5, 4].Value = c.MontoCreditoDebito;

                    break;

                case (CategoriasFacturacion.Servicios_Especiales):

                    dgvFacturar[1, 5].Value = c.Modelo;
                    dgvFacturar[2, 5].Value = c.CentroCostos;
                    dgvFacturar[3, 5].Value = c.Factura;
                    dgvFacturar[4, 5].Value = c.Monto;
                    dgvFacturar[5, 5].Value = c.MontoCreditoDebito;

                    break;


                case (CategoriasFacturacion.Eticket):

                    dgvFacturar[1, 6].Value = c.Modelo;
                    dgvFacturar[2, 6].Value = c.CentroCostos;
                    dgvFacturar[3, 6].Value = c.Factura;
                    dgvFacturar[4, 6].Value = c.Monto;
                    dgvFacturar[5, 6].Value = c.MontoCreditoDebito;

                    break;
                }
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Exporta el reporte del resumen de facturación
        /// </summary>
        private void btnExportar_Click(object sender, EventArgs e)
        {
            try
            {
                Cliente cliente = cboCliente.SelectedIndex == 0 ?
                                  null : (Cliente)cboCliente.SelectedItem;


                EmpresaTransporte transportadora = cboTransportadora.SelectedIndex == 0 ?
                                                   null : (EmpresaTransporte)cboTransportadora.SelectedItem;

                string   observ       = txtObservaciones.Text;
                DateTime fecha_inicio = dtpFecha.Value;
                DateTime fecha_fin    = dtpFechaFin.Value;
                FacturacionTransportadora facturacion = new FacturacionTransportadora();


                BindingList <CategoriaFacturacionTransportadora> lista = new BindingList <CategoriaFacturacionTransportadora>();

                // Carga los datos de la tabla

                CategoriaFacturacionTransportadora cuenta_corriente_entrante = new CategoriaFacturacionTransportadora(monto: _monto_cuenta_corriente_entrante, creditosdebitos: _creditosdebitos_cuenta_corriente_entrante, centro_costos: _cc_cuenta_corriente_entrante,
                                                                                                                      factura: _factura_cuenta_corriente_entrante, categoria: CategoriasFacturacion.Cuenta_Corriente_Entrantes, modelo: _modelo_cuenta_corriente_entrante);

                CategoriaFacturacionTransportadora cuenta_corriente_saliente = new CategoriaFacturacionTransportadora(monto: _monto_cuenta_corriente_saliente, creditosdebitos: _creditosdebitos_cuenta_corriente_saliente, centro_costos: _cc_cuenta_corriente_saliente,
                                                                                                                      factura: _factura_cuenta_corriente_saliente, categoria: CategoriasFacturacion.Cuenta_Corriente_Salientes, modelo: _modelo_cuenta_corriente_saliente);

                CategoriaFacturacionTransportadora sucursales = new CategoriaFacturacionTransportadora(monto: _monto_sucursales, creditosdebitos: _creditosdebitos_sucursales, centro_costos: _cc_sucursales, factura: _factura_sucursales, categoria: CategoriasFacturacion.Sucursales, modelo: _modelo_sucursales);

                CategoriaFacturacionTransportadora material_operativo = new CategoriaFacturacionTransportadora(monto: _monto_material_operativo, creditosdebitos: _creditosdebitos_material_operativo, centro_costos: _cc_material_operativo, factura: _factura_material_operativo, categoria: CategoriasFacturacion.Material_Operativo, modelo: _modelo_material_operativo);

                CategoriaFacturacionTransportadora procesamiento = new CategoriaFacturacionTransportadora(monto: _monto_procesamiento, creditosdebitos: _creditosdebitos_procesamiento, centro_costos: _cc_procesamiento, factura: _factura_procesamiento, categoria: CategoriasFacturacion.Procesamiento, modelo: _modelo_procesamiento);

                CategoriaFacturacionTransportadora servicios_especiales = new CategoriaFacturacionTransportadora(monto: _monto_servicios_especiales, creditosdebitos: _creditosdebitos_servicios_especiales, centro_costos: _cc_servicios_especiales,
                                                                                                                 factura: _factura_servicios_especiales, categoria: CategoriasFacturacion.Servicios_Especiales, modelo: _modelo_servicios_especiales);


                CategoriaFacturacionTransportadora eticket = new CategoriaFacturacionTransportadora(monto: _monto_eticket, creditosdebitos: _creditosdebitos_eticket, centro_costos: _cc_eticket,
                                                                                                    factura: _factura_eticket, categoria: CategoriasFacturacion.Eticket, modelo: _modelo_eticket);


                lista.Add(cuenta_corriente_entrante);
                lista.Add(cuenta_corriente_saliente);
                lista.Add(sucursales);
                lista.Add(material_operativo);
                lista.Add(procesamiento);
                lista.Add(servicios_especiales);
                lista.Add(eticket);


                DocumentoExcel documento = new DocumentoExcel(Application.StartupPath + "\\Plantillas\\plantilla_resumen_facturacion.xlt", true);

                documento.seleccionarHoja(1);

                // Escribir los datos

                documento.seleccionarCelda("J2");
                documento.actualizarValorCelda("Resumen para Pago" + Mes[dtpFechaFin.Value.Month - 1] + " " + dtpFechaFin.Value.Year.ToString() + "pagado en " + Mes[dtpFechaFin.Value.Month] + " " + dtpFechaFin.Value.Year.ToString());

                documento.seleccionarCelda("M4");
                documento.actualizarValorCelda(cuenta_corriente_entrante.Factura);

                documento.seleccionarCelda("N4");
                documento.actualizarValorCelda(cuenta_corriente_entrante.Monto.ToString("N0"));

                documento.seleccionarCelda("O4");
                documento.actualizarValorCelda(cuenta_corriente_entrante.MontoCreditoDebito.ToString("N0"));

                documento.seleccionarCelda("M5");
                documento.actualizarValorCelda(cuenta_corriente_saliente.Factura);

                documento.seleccionarCelda("N5");
                documento.actualizarValorCelda(cuenta_corriente_saliente.Monto.ToString("N0"));

                documento.seleccionarCelda("O5");
                documento.actualizarValorCelda(cuenta_corriente_saliente.MontoCreditoDebito.ToString("N0"));

                documento.seleccionarCelda("M6");
                documento.actualizarValorCelda(sucursales.Factura);

                documento.seleccionarCelda("N6");
                documento.actualizarValorCelda(sucursales.Monto.ToString("N0"));

                documento.seleccionarCelda("O6");
                documento.actualizarValorCelda(sucursales.MontoCreditoDebito.ToString("N0"));

                documento.seleccionarCelda("M7");
                documento.actualizarValorCelda(material_operativo.Factura);

                documento.seleccionarCelda("N7");
                documento.actualizarValorCelda(material_operativo.Monto.ToString("N0"));

                documento.seleccionarCelda("O7");
                documento.actualizarValorCelda(material_operativo.MontoCreditoDebito.ToString("N0"));

                documento.seleccionarCelda("M8");
                documento.actualizarValorCelda(procesamiento.Factura);

                documento.seleccionarCelda("N8");
                documento.actualizarValorCelda(procesamiento.Monto.ToString("N0"));

                documento.seleccionarCelda("O8");
                documento.actualizarValorCelda(procesamiento.MontoCreditoDebito.ToString("N0"));

                documento.seleccionarCelda("M9");
                documento.actualizarValorCelda(servicios_especiales.Factura);

                documento.seleccionarCelda("N9");
                documento.actualizarValorCelda(servicios_especiales.Monto.ToString("N0"));

                documento.seleccionarCelda("O9");
                documento.actualizarValorCelda(servicios_especiales.MontoCreditoDebito.ToString("N0"));

                documento.seleccionarCelda("J15");
                documento.actualizarValorCelda("Hecho por " + _usuario.ToString());


                // Mostrar el archivo

                documento.mostrar();
                documento.cerrar();
            }
            catch (Exception)
            {
                Excepcion.mostrarMensaje("ErrorExcel");
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Carga los datos del resumen de facturacion
        /// </summary>
        private void btnActualizar_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime fechai = dtpFecha.Value;
                DateTime fechaf = dtpFechaFin.Value;

                Cliente cliente = cboCliente.SelectedIndex == 0 ?
                                  null : (Cliente)cboCliente.SelectedItem;

                EmpresaTransporte empresa = cboTransportadora.SelectedIndex == 0 ?
                                            null : (EmpresaTransporte)cboTransportadora.SelectedItem;

                _monto_cobrar               = _coordinacion.calcularResumenFacturacion(cliente, empresa, fechai, fechaf);
                _monto_cobrar_salientes     = _coordinacion.calcularResumenFacturacionSalientes(cliente, empresa, fechai, fechaf);
                _monto_cobrar_sucursales    = _coordinacion.calcularResumenFacturacionSucursales(cliente, empresa, fechai, fechaf);
                _monto_cobrar_procesamiento = _coordinacion.calcularResumenFacturacionProcesamiento(cliente, empresa, fechai, fechaf);
                _penalidades = _coordinacion.calcularCreditosFacturacionTransportadora(cliente, empresa, fechai, fechaf);

                FacturacionTransportadora facturacion = _coordinacion.obtenerResumenTransportadora(cliente, empresa, fechai, fechaf);

                if (facturacion != null)
                {
                    foreach (CategoriaFacturacionTransportadora c in facturacion.ListaCategoria)
                    {
                        if (c.Categoria == CategoriasFacturacion.Cuenta_Corriente_Entrantes && c.Monto == 0 && c.MontoCreditoDebito == 0)
                        {
                            c.Monto = _monto_cobrar;
                            c.MontoCreditoDebito = _penalidades;
                        }
                        if (c.Categoria == CategoriasFacturacion.Cuenta_Corriente_Salientes && c.Monto == 0 && c.MontoCreditoDebito == 0)
                        {
                            c.Monto = _monto_cobrar_salientes;
                        }
                    }
                }
                else
                {
                    facturacion = new FacturacionTransportadora();
                    facturacion.ListaCategoria    = new BindingList <CategoriaFacturacionTransportadora>();
                    facturacion.Cliente           = cliente;
                    facturacion.Empresa_encargada = empresa;

                    CategoriaFacturacionTransportadora nueva_cuenta = new CategoriaFacturacionTransportadora();
                    _modelo_cuenta_corriente_entrante  = dgvFacturar[clmModelo.Index, 0].Value.ToString();
                    _cc_cuenta_corriente_entrante      = dgvFacturar[clmCC.Index, 0].Value.ToString();
                    _factura_cuenta_corriente_entrante = dgvFacturar[clmFactura.Index, 0].Value.ToString();



                    CategoriaFacturacionTransportadora categoria_clientes_saliente = new CategoriaFacturacionTransportadora();
                    _modelo_cuenta_corriente_saliente  = dgvFacturar[clmModelo.Index, 1].Value.ToString();
                    _cc_cuenta_corriente_saliente      = dgvFacturar[clmCC.Index, 1].Value.ToString();
                    _factura_cuenta_corriente_saliente = dgvFacturar[clmFactura.Index, 1].Value.ToString();


                    //Sucursales
                    CategoriaFacturacionTransportadora categoria_sucursales = new CategoriaFacturacionTransportadora();
                    _modelo_sucursales  = dgvFacturar[clmModelo.Index, 2].Value.ToString();
                    _cc_sucursales      = dgvFacturar[clmCC.Index, 2].Value.ToString();
                    _factura_sucursales = dgvFacturar[clmFactura.Index, 2].Value.ToString();


                    //Procesamiento
                    CategoriaFacturacionTransportadora categoria_procesamiento = new CategoriaFacturacionTransportadora();
                    _modelo_procesamiento  = dgvFacturar[clmModelo.Index, 4].Value.ToString();
                    _cc_procesamiento      = dgvFacturar[clmCC.Index, 4].Value.ToString();
                    _factura_procesamiento = dgvFacturar[clmFactura.Index, 4].Value.ToString();


                    //Entrate de clientes
                    nueva_cuenta.Modelo             = _modelo_cuenta_corriente_entrante;
                    nueva_cuenta.CentroCostos       = _cc_cuenta_corriente_entrante;
                    nueva_cuenta.Factura            = _factura_cuenta_corriente_entrante;
                    nueva_cuenta.Categoria          = CategoriasFacturacion.Cuenta_Corriente_Entrantes;
                    nueva_cuenta.Monto              = _monto_cobrar;
                    nueva_cuenta.MontoCreditoDebito = _penalidades * -1;

                    //Saliente de Clientes

                    categoria_clientes_saliente.Modelo             = _modelo_cuenta_corriente_saliente;
                    categoria_clientes_saliente.CentroCostos       = _cc_cuenta_corriente_saliente;
                    categoria_clientes_saliente.Factura            = _factura_cuenta_corriente_saliente;
                    categoria_clientes_saliente.Categoria          = CategoriasFacturacion.Cuenta_Corriente_Salientes;
                    categoria_clientes_saliente.Monto              = _monto_cobrar_salientes;
                    categoria_clientes_saliente.MontoCreditoDebito = 0;


                    //Sucursales

                    categoria_sucursales.Modelo             = _modelo_sucursales;
                    categoria_sucursales.CentroCostos       = _cc_sucursales;
                    categoria_sucursales.Factura            = _factura_sucursales;
                    categoria_sucursales.Categoria          = CategoriasFacturacion.Sucursales;
                    categoria_sucursales.Monto              = _monto_sucursales;
                    categoria_sucursales.MontoCreditoDebito = 0;


                    //Procesamiento

                    categoria_procesamiento.Modelo             = _modelo_procesamiento;
                    categoria_procesamiento.CentroCostos       = _cc_procesamiento;
                    categoria_procesamiento.Factura            = _factura_procesamiento;
                    categoria_procesamiento.Categoria          = CategoriasFacturacion.Procesamiento;
                    categoria_procesamiento.Monto              = _monto_procesamiento;
                    categoria_procesamiento.MontoCreditoDebito = 0;



                    facturacion.ListaCategoria.Add(nueva_cuenta);
                    facturacion.ListaCategoria.Add(categoria_clientes_saliente);
                    facturacion.ListaCategoria.Add(categoria_sucursales);
                    facturacion.ListaCategoria.Add(categoria_procesamiento);
                }

                llenarDatos(facturacion);
            }
            catch (Excepcion ex)
            {
                ex.mostrarMensaje();
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Clic en el botón de guardar.
        /// </summary>
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            // Verificar que se hayan seleccionado los datos



            try
            {
                Cliente cliente = cboCliente.SelectedIndex == 0 ?
                                  null : (Cliente)cboCliente.SelectedItem;


                EmpresaTransporte transportadora = cboTransportadora.SelectedIndex == 0 ?
                                                   null : (EmpresaTransporte)cboTransportadora.SelectedItem;

                string   observ       = txtObservaciones.Text;
                DateTime fecha_inicio = dtpFecha.Value;
                DateTime fecha_fin    = dtpFechaFin.Value;
                FacturacionTransportadora facturacion = new FacturacionTransportadora();


                BindingList <CategoriaFacturacionTransportadora> lista = new BindingList <CategoriaFacturacionTransportadora>();

                // Carga los datos de la tabla

                CategoriaFacturacionTransportadora cuenta_corriente_entrante = new CategoriaFacturacionTransportadora(monto: _monto_cuenta_corriente_entrante, creditosdebitos: _creditosdebitos_cuenta_corriente_entrante, centro_costos: _cc_cuenta_corriente_entrante,
                                                                                                                      factura: _factura_cuenta_corriente_entrante, categoria: CategoriasFacturacion.Cuenta_Corriente_Entrantes, modelo: _modelo_cuenta_corriente_entrante);

                CategoriaFacturacionTransportadora cuenta_corriente_saliente = new CategoriaFacturacionTransportadora(monto: _monto_cuenta_corriente_saliente, creditosdebitos: _creditosdebitos_cuenta_corriente_saliente, centro_costos: _cc_cuenta_corriente_saliente,
                                                                                                                      factura: _factura_cuenta_corriente_saliente, categoria: CategoriasFacturacion.Cuenta_Corriente_Salientes, modelo: _modelo_cuenta_corriente_saliente);

                CategoriaFacturacionTransportadora sucursales = new CategoriaFacturacionTransportadora(monto: _monto_sucursales, creditosdebitos: _creditosdebitos_sucursales, centro_costos: _cc_sucursales, factura: _factura_sucursales, categoria: CategoriasFacturacion.Sucursales, modelo: _modelo_sucursales);

                CategoriaFacturacionTransportadora material_operativo = new CategoriaFacturacionTransportadora(monto: _monto_material_operativo, creditosdebitos: _creditosdebitos_material_operativo, centro_costos: _cc_material_operativo, factura: _factura_material_operativo, categoria: CategoriasFacturacion.Material_Operativo, modelo: _modelo_material_operativo);

                CategoriaFacturacionTransportadora procesamiento = new CategoriaFacturacionTransportadora(monto: _monto_procesamiento, creditosdebitos: _creditosdebitos_procesamiento, centro_costos: _cc_procesamiento, factura: _factura_procesamiento, categoria: CategoriasFacturacion.Procesamiento, modelo: _modelo_procesamiento);

                CategoriaFacturacionTransportadora servicios_especiales = new CategoriaFacturacionTransportadora(monto: _monto_servicios_especiales, creditosdebitos: _creditosdebitos_servicios_especiales, centro_costos: _cc_servicios_especiales,
                                                                                                                 factura: _factura_servicios_especiales, categoria: CategoriasFacturacion.Servicios_Especiales, modelo: _modelo_servicios_especiales);


                CategoriaFacturacionTransportadora eticket = new CategoriaFacturacionTransportadora(monto: _monto_eticket, creditosdebitos: _creditosdebitos_eticket, centro_costos: _cc_eticket,
                                                                                                    factura: _factura_eticket, categoria: CategoriasFacturacion.Eticket, modelo: _modelo_eticket);


                lista.Add(cuenta_corriente_entrante);
                lista.Add(cuenta_corriente_saliente);
                lista.Add(sucursales);
                lista.Add(material_operativo);
                lista.Add(procesamiento);
                lista.Add(servicios_especiales);
                lista.Add(eticket);



                // Verificar si el vehiculo ya está registrado

                if (_facturacion_transportadora == null)
                {
                    // Agregar los datos del vehiculo

                    if (Mensaje.mostrarMensajeConfirmacion("MensajeFacturacionTransportadoraRegistro") == DialogResult.Yes)
                    {
                        _facturacion_transportadora = new FacturacionTransportadora(cliente: cliente, transportadora: transportadora, fecha: fecha_inicio
                                                                                    , fecha_fin: fecha_fin, observaciones: observ);

                        _facturacion_transportadora.ListaCategoria = lista;

                        _coordinacion.agregarFacturacionTransportadora(ref _facturacion_transportadora);


                        Mensaje.mostrarMensaje("MensajeFacturacionTransportadoraConfirmacionRegistro");
                        this.Close();
                    }
                }
                else
                {
                    // Actualizar los datos de la ubicación

                    FacturacionTransportadora copia = new FacturacionTransportadora(id: _facturacion_transportadora.ID, cliente: cliente, transportadora: transportadora, fecha: fecha_inicio
                                                                                    , fecha_fin: fecha_fin, observaciones: observ);

                    copia.ListaCategoria = lista;

                    _coordinacion.actualizarFacturacionTransportadora(copia);


                    Mensaje.mostrarMensaje("MensajeFacturacionTransportadoraConfirmacionActualizacion");
                    this.Close();
                }
            }
            catch (Excepcion ex)
            {
                ex.mostrarMensaje();
            }
        }
        /// <summary>
        /// Registrar una categoria para una facturacion
        /// </summary>
        /// <param name="n">Objeto CategoriaFacturacio con los datos del nombre</param>
        /// <param name="c">FacturacionTransportadora al cual pertenece la Categoría </param>
        public void agregarCategoriaFacturacionTransportadora(ref CategoriaFacturacionTransportadora n, FacturacionTransportadora c)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("InsertCategoriaResumenFacturacion");

            _manejador.agregarParametro(comando, "@centro_costos", n.CentroCostos, SqlDbType.NVarChar);
            _manejador.agregarParametro(comando, "@modelo", n.Modelo, SqlDbType.NVarChar);
            _manejador.agregarParametro(comando, "@factura", n.Factura, SqlDbType.NVarChar);
            _manejador.agregarParametro(comando, "@monto", n.Monto, SqlDbType.Decimal);
            _manejador.agregarParametro(comando, "@creditos_debitos", n.MontoCreditoDebito, SqlDbType.Decimal);
            _manejador.agregarParametro(comando, "@resumen", c.ID, SqlDbType.Int);
            _manejador.agregarParametro(comando, "@tipo", n.Categoria, SqlDbType.Int);

            try
            {
                n.ID = (int)_manejador.ejecutarEscalar(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorNombreJuridicoClienteActualizacion");
            }
        }
        /// <summary>
        /// Lista los datos de la tarifa a cobrar a las transportadoras
        /// </summary>
        /// <param name="c">Cliente de la Facturacion</param>
        /// <param name="t">Transportadora a Facturar</param>
        /// <param name="fechai">Fecha de Inicio del calculo de la facturación</param>
        /// <param name="fechaf">Fecha Fin del Cálculo de la Facturación</param>
        /// <returns>Objeto FacturacionTransportadora con los cálculos del resumen de la transportadora</returns>
        public FacturacionTransportadora listarFacturacionTransportadora(Cliente c, EmpresaTransporte t, DateTime fechai, DateTime fechaf)
        {
            FacturacionTransportadora resumen = null;


            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectResumenFacturacion");
            SqlDataReader datareader = null;

            if (c == null)
            {
                _manejador.agregarParametro(comando, "@cliente", null, SqlDbType.Int);
            }
            else
            {
                _manejador.agregarParametro(comando, "@cliente", c.Id, SqlDbType.Int);
            }
            _manejador.agregarParametro(comando, "@transportadora", t, SqlDbType.Int);
            _manejador.agregarParametro(comando, "@fecha", fechai, SqlDbType.Date);
            _manejador.agregarParametro(comando, "@fecha_fin", fechaf, SqlDbType.Date);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int    id            = (int)datareader["pk_ID"];
                    string observaciones = (string)datareader["Observaciones"];

                    DateTime fecha     = (DateTime)datareader["Fecha_Inicio"];
                    DateTime fecha_fin = (DateTime)datareader["Fecha_Fin"];


                    EmpresaTransporte empresa = null;

                    if (datareader["fk_ID_Transportadora"] != DBNull.Value)
                    {
                        byte   id_transportadora     = (byte)datareader["fk_ID_Transportadora"];
                        string nombre_transportadora = (string)datareader["Nombre_Transportadora"];

                        empresa = new EmpresaTransporte(id: id_transportadora, nombre: nombre_transportadora);
                    }

                    Cliente cliente = null;

                    if (datareader["fk_ID_Cliente"] != DBNull.Value)
                    {
                        short  id_cliente     = (short)datareader["fk_ID_Cliente"];
                        string nombre_cliente = (string)datareader["Nombre_Cliente"];

                        cliente = new Cliente(id: id_cliente, nombre: nombre_cliente);
                    }



                    resumen = new FacturacionTransportadora(cliente: cliente, transportadora: empresa, fecha: fecha, fecha_fin: fecha_fin, id: id, observaciones: observaciones);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
            return(resumen);
        }