Ejemplo n.º 1
0
        public Int32 InsertPago(E_Pago ObjPago, E_NotaIngreso ObjNotaIngreso, int EstadoID)
        {
            Int32 NotaIngresoID = 0;

            try
            {
                SqlDatabase SqlClient  = new SqlDatabase(connectionString);
                DbCommand   SqlCommand = SqlClient.GetStoredProcCommand("Ventas.Usp_InsertPago2");

                SqlClient.AddInParameter(SqlCommand, "@EmpresaID", SqlDbType.Char, ObjNotaIngreso.EmpresaID);
                SqlClient.AddInParameter(SqlCommand, "@FormaPagoID", SqlDbType.TinyInt, ObjPago.FormaPagoID);
                SqlClient.AddInParameter(SqlCommand, "@Tipo", SqlDbType.Char, ObjNotaIngreso.Tipo);
                SqlClient.AddInParameter(SqlCommand, "@Numcaja", SqlDbType.Int, ObjNotaIngreso.Numcaja);
                SqlClient.AddInParameter(SqlCommand, "@Observacion", SqlDbType.VarChar, ObjNotaIngreso.Observacion);
                SqlClient.AddInParameter(SqlCommand, "@NumComprobante", SqlDbType.Char, ObjPago.NumComprobante);
                SqlClient.AddInParameter(SqlCommand, "@TipoComprobanteID", SqlDbType.TinyInt, ObjPago.TipoComprobanteID);
                SqlClient.AddInParameter(SqlCommand, "@LugarPago", SqlDbType.Char, ObjNotaIngreso.LugarPago);
                SqlClient.AddInParameter(SqlCommand, "@Importe", SqlDbType.Decimal, ObjPago.Importe);
                SqlClient.AddInParameter(SqlCommand, "@ClienteID", SqlDbType.Int, ObjNotaIngreso.ClienteID);
                SqlClient.AddInParameter(SqlCommand, "@Estado", SqlDbType.TinyInt, ObjNotaIngreso.Estado);
                SqlClient.AddInParameter(SqlCommand, "@UsuarioID", SqlDbType.Int, ObjPago.UsuarioID);

                SqlClient.AddInParameter(SqlCommand, "@EstadoID", SqlDbType.Int, EstadoID);

                SqlClient.AddInParameter(SqlCommand, "@Serie", SqlDbType.Char, ObjNotaIngreso.Serie);
                SqlClient.AddInParameter(SqlCommand, "@Numero", SqlDbType.Char, ObjNotaIngreso.Numero);

                NotaIngresoID = Convert.ToInt32(SqlClient.ExecuteScalar(SqlCommand));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(NotaIngresoID);
        }
Ejemplo n.º 2
0
        private void BtnIngresar_Click(object sender, EventArgs e)
        {
            ErrProvider.Clear();
            try
            {
                if (TxtCantidad.Text != "" & TxtConcepto.Text != "")
                {
                    //inserta un ingreso a la caja

                    //llenar el objPago
                    E_Pago ObjE_Pago = new E_Pago();
                    ObjE_Pago.PagoID            = 0;
                    ObjE_Pago.NumComprobante    = "";
                    ObjE_Pago.TipoComprobanteID = 0;
                    ObjE_Pago.Importe           = Convert.ToDecimal(TxtCantidad.Text);
                    ObjE_Pago.FormaPagoID       = 2;//contado
                    ObjE_Pago.UsuarioID         = AppSettings.UserID;


                    //llenar la nota de ingreso
                    E_NotaIngreso ObjE_NotaIngreso = new E_NotaIngreso();
                    ObjE_NotaIngreso.Tipo        = "E";//es salida
                    ObjE_NotaIngreso.Numcaja     = NumCaja;
                    ObjE_NotaIngreso.EmpresaID   = EmpresaID;
                    ObjE_NotaIngreso.Observacion = "Inicio dia";
                    ObjE_NotaIngreso.LugarPago   = AppSettings.SedeID;

                    if (AppSettings.ImpresoraPago != "")
                    {
                        Int32 NotaIngresoID = 0;
                        NotaIngresoID = ObjCL_Pago.InsertPago(ObjE_Pago, ObjE_NotaIngreso, 12);

                        printDocument1.PrinterSettings.PrinterName = AppSettings.ImpresoraPago;
                        printDocument1.Print();
                        MessageBox.Show("Se registro correctamente la salida de caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("no se ha seleccionado la impresora de pago, no se imprimira el Egreso", "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    }
                }
                else
                {
                    if (TxtCantidad.Text == "")
                    {
                        ErrProvider.SetError(TxtCantidad, "Debe ingresar una cantidad valida.");
                    }
                    if (TxtConcepto.Text == "")
                    {
                        ErrProvider.SetError(TxtConcepto, "Debe ingresar el concepto del egreso.");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\rMetodo Ingresar inicio caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 3
0
        public Int32 InsertPago(E_Pago ObjPago, E_NotaIngreso ObjNotaIngreso, int EstadoID)
        {
            CD_Pago objCD_Pago    = new CD_Pago(AppSettings.GetConnectionString);
            Int32   NotaIngresoID = 0;

            NotaIngresoID = objCD_Pago.InsertPago(ObjPago, ObjNotaIngreso, EstadoID);
            return(NotaIngresoID);
        }
Ejemplo n.º 4
0
        public Int32 UpdateXMLEstadoComprobantes(DataTable DtEstadosComprobante, E_NotaIngreso ObjNotaIngreso)
        {
            Int32  NotaIngresoID;
            string Xml, xmlDetalle;

            Xml        = new BaseFunctions().GetXML(DtEstadosComprobante).Replace("NewDataSet", "DocumentElement");
            xmlDetalle = Xml.Replace("Table", "Comprobante");

            CD_Pago objCD_Pago = new CD_Pago(AppSettings.GetConnectionString);

            NotaIngresoID = objCD_Pago.UpdateXMLEstadoComprobantes(Xml, ObjNotaIngreso);
            return(NotaIngresoID);
        }
Ejemplo n.º 5
0
        private void BtnIngresar_Click(object sender, EventArgs e)
        {
            try
            {
                ErrProvider.Clear();
                if (TxtCantidad.Text != "")
                {
                    //inserta un ingreso a la caja

                    //llenar el objPago
                    E_Pago ObjE_Pago = new E_Pago();
                    ObjE_Pago.PagoID            = 0;
                    ObjE_Pago.NumComprobante    = "";
                    ObjE_Pago.TipoComprobanteID = 0;
                    ObjE_Pago.Importe           = Convert.ToDecimal(TxtCantidad.Text);
                    ObjE_Pago.FormaPagoID       = 2;//contado
                    ObjE_Pago.UsuarioID         = AppSettings.UserID;


                    //llenar la nota de ingreso
                    E_NotaIngreso ObjE_NotaIngreso = new E_NotaIngreso();
                    ObjE_NotaIngreso.Tipo        = "C";
                    ObjE_NotaIngreso.Numcaja     = NumCaja;
                    ObjE_NotaIngreso.EmpresaID   = EmpresaID;
                    ObjE_NotaIngreso.Observacion = "Inicio dia";
                    ObjE_NotaIngreso.LugarPago   = AppSettings.SedeID;

                    NotaIngresoID = ObjCL_Pago.InsertPago(ObjE_Pago, ObjE_NotaIngreso, 12);
                    MessageBox.Show("Se registro correctamente El ingreso de caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                else
                {
                    ErrProvider.SetError(TxtCantidad, "Ingrese una cantidad valida.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\rMetodo Ingresar inicio caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 6
0
        public Int32 UpdateXMLEstadoComprobantes(string Xml, E_NotaIngreso ObjNotaIngreso)
        {
            Int32       NotaIngresoID = 0;
            SqlDatabase SqlClient     = new SqlDatabase(connectionString);

            DbConnection tCnn;

            tCnn = SqlClient.CreateConnection();
            tCnn.Open();

            DbTransaction tran = tCnn.BeginTransaction();

            try
            {
                DbCommand SqlCommand = SqlClient.GetStoredProcCommand("Ventas.Usp_UpdateXMLEstadoComprobantes");

                SqlClient.AddInParameter(SqlCommand, "@Xml", SqlDbType.Xml, Xml);
                SqlClient.AddInParameter(SqlCommand, "@EmpresaID", SqlDbType.Char, ObjNotaIngreso.EmpresaID);
                SqlClient.AddInParameter(SqlCommand, "@FormaPagoID", SqlDbType.TinyInt, ObjNotaIngreso.FormaPagoID);
                SqlClient.AddInParameter(SqlCommand, "@Numcaja", SqlDbType.Int, ObjNotaIngreso.Numcaja);
                SqlClient.AddInParameter(SqlCommand, "@Observacion", SqlDbType.VarChar, ObjNotaIngreso.Observacion);
                SqlClient.AddInParameter(SqlCommand, "@LugarPago", SqlDbType.Char, ObjNotaIngreso.LugarPago);
                SqlClient.AddInParameter(SqlCommand, "@Importe", SqlDbType.Decimal, ObjNotaIngreso.Importe);
                SqlClient.AddInParameter(SqlCommand, "@UsuarioID", SqlDbType.Int, ObjNotaIngreso.UsuarioID);
                NotaIngresoID = Convert.ToInt32(SqlClient.ExecuteScalar(SqlCommand, tran));

                tran.Commit();
                tCnn.Close();
                tCnn.Dispose();
                SqlCommand.Dispose();
                return(NotaIngresoID);
            }
            catch (Exception ex)
            {
                tran.Rollback();
                throw new Exception(ex.Message);
            }
        }
Ejemplo n.º 7
0
        private void BtnRegistrar_Click(object sender, EventArgs e)
        {
            ErrProvider.Clear();
            try
            {
                if (TxtImporte.Text != "" & TxtConcepto.Text != "")
                {
                    if (ClienteID == 0 | ClienteID == 1 | ClienteID == 204 | ClienteID == 241 | ClienteID == 3032)
                    {
                        MessageBox.Show("Debe exigir datos que identifiquen al cliente\nNo puede ser uno generico (Clientes varios)", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    //inserta un ingreso a la caja

                    //llenar el objPagos
                    E_Pago ObjE_Pago = new E_Pago();
                    ObjE_Pago.PagoID            = 0;
                    ObjE_Pago.NumComprobante    = "";
                    ObjE_Pago.TipoComprobanteID = 0;
                    ObjE_Pago.Importe           = Convert.ToDecimal(TxtImporte.Text);
                    ObjE_Pago.FormaPagoID       = 2;//contado
                    ObjE_Pago.UsuarioID         = AppSettings.UserID;


                    //llenar la nota de ingreso
                    E_NotaIngreso ObjE_NotaIngreso = new E_NotaIngreso();
                    ObjE_NotaIngreso.Tipo        = "A";//es Adelanto
                    ObjE_NotaIngreso.Numcaja     = NumCaja;
                    ObjE_NotaIngreso.EmpresaID   = EmpresaID;
                    ObjE_NotaIngreso.Observacion = TxtConcepto.Text;
                    ObjE_NotaIngreso.LugarPago   = AppSettings.SedeID;
                    ObjE_NotaIngreso.ClienteID   = ClienteID;
                    ObjE_NotaIngreso.Estado      = 0;

                    DataView DV = new DataView(UTI_Datatables.Dt_Configuracion, "Codigo ='IMP_PA'", "", DataViewRowState.CurrentRows);

                    if (DV.Count > 0)
                    {
                        NotaIngresoID = ObjCL_Pago.InsertPago(ObjE_Pago, ObjE_NotaIngreso, 12);

                        printDocument1.PrinterSettings.PrinterName = DV[0]["Data"].ToString();
                        printDocument1.Print();
                        MessageBox.Show("Se registro correctamente el adelanto", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("no se ha seleccionado la impresora de pago, no se imprimira el adelanto", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        return;
                    }
                }
                else
                {
                    if (TxtImporte.Text == "")
                    {
                        ErrProvider.SetError(TxtImporte, "Debe ingresar una cantidad valida.");
                    }
                    if (TxtConcepto.Text == "")
                    {
                        ErrProvider.SetError(TxtConcepto, "Debe ingresar el concepto del adelanto.");
                    }
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\rMetodo Ingresar adelanto", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 8
0
        private void BtnPagar_Click(object sender, EventArgs e)
        {
            try
            {
                ErrProvider.Clear();
                string NumComprobante    = "";
                Int32  TipoComprobanteID = 0;

                decimal Pagar = 0;
                if (TxtPagar.Text != "" & TxtPagar.Text != ".")
                {
                    Pagar = Convert.ToDecimal(TxtPagar.Text);
                }

                if (RbCampanha.Checked == true & LstComprobantes.ListCount > 0)
                {
                    NumComprobante    = LstComprobantes.Columns["NumComprobante"].Value.ToString();
                    TipoComprobanteID = Convert.ToInt32(LstComprobantes.Columns["TipoComprobanteID"].Value);
                }
                else if (RbComprobante.Checked == true & cbComprobante.SelectedIndex != -1 & c1cboCia.SelectedIndex != -1 & TxtComprobante.Text != "")
                {
                    NumComprobante    = c1cboCia.SelectedValue.ToString() + TxtComprobante.Text;
                    TipoComprobanteID = Convert.ToInt32(cbComprobante.Columns["TipoComprobanteID"].Value);
                }

                if (cbFormaPago.SelectedIndex != -1 & Pagar > 0 & NumComprobante != "" & TipoComprobanteID != 0 & PorPagarComprobante > 0 & PorPagarComprobante >= Pagar & NumCaja != 0)
                {
                    if (MessageBox.Show("¿Seguro que desea registrar el pago?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        //obtener datos de la empresa
                        DataView DV        = new DataView(DtEmpresas);
                        string   EmpresaID = NumComprobante.Substring(0, 2);
                        DV.RowFilter = "EmpresaID = '" + EmpresaID + "'";
                        string NomEmpresa = DV[0]["NomEmpresa"].ToString();
                        string RUC        = DV[0]["RUC"].ToString();

                        //llenar el objPago
                        E_Pago ObjE_Pago = new E_Pago();
                        ObjE_Pago.PagoID            = 0;
                        ObjE_Pago.NumComprobante    = NumComprobante;
                        ObjE_Pago.TipoComprobanteID = TipoComprobanteID;
                        ObjE_Pago.Importe           = Convert.ToDecimal(TxtPagar.Text);
                        ObjE_Pago.FormaPagoID       = Convert.ToInt32(cbFormaPago.SelectedValue);
                        ObjE_Pago.UsuarioID         = AppSettings.UserID;

                        //llenar la nota de ingreso
                        E_NotaIngreso ObjE_NotaIngreso = new E_NotaIngreso();
                        ObjE_NotaIngreso.Tipo        = "I";
                        ObjE_NotaIngreso.Numcaja     = NumCaja;
                        ObjE_NotaIngreso.EmpresaID   = AppSettings.EmpresaID;
                        ObjE_NotaIngreso.Observacion = TxtObservacion.Text;
                        ObjE_NotaIngreso.LugarPago   = AppSettings.SedeID;

                        //calcular el estado del comporbante
                        if (PorPagarComprobante > Pagar)    //todavia resta
                        {
                            EstadoID = 13;
                        }
                        else if (PorPagarComprobante == Pagar)    //es el total de la deuda del comprobante
                        {
                            EstadoID = 12;
                        }

                        Int32 CreditoID = 0;

                        if (RbCampanha.Checked == true)
                        {
                            CreditoID = Convert.ToInt32(LstCreditos.Columns["CreditoID"].Value);
                        }

                        printDocument1.PrinterSettings.PrinterName = ImpresoraPago;

                        //validar la impresion
                        if (ChkImprimir.Checked == true)
                        {
                            if (printDocument1.PrinterSettings.PrinterName != "")
                            {
                                FormatoImpresion = ObjCL_Pago.FormatoTicketPago(NomEmpresa, CreditoID, LstCreditos.Columns["NomCampanha"].Value.ToString(), AppSettings.NomSede, RUC, AppSettings.Usuario, Convert.ToDecimal(TxtPagar.Text), NomCaja);
                                //MessageBox.Show(FormatoImpresion, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);

                                Int32 NotaIngresoID = 0;
                                NotaIngresoID = ObjCL_Pago.InsertPago(ObjE_Pago, ObjE_NotaIngreso, EstadoID);
                                MessageBox.Show("Se registro correctamente el pago", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);


                                printDocument1.Print();
                                LimpiarTodo();
                            }
                            else
                            {
                                MessageBox.Show("Debe seleccionar una impresora valida. no se guardara el pago.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                        }
                        else
                        {
                            FormatoImpresion = ObjCL_Pago.FormatoTicketPago(NomEmpresa, CreditoID, LstCreditos.Columns["NomCampanha"].Value.ToString(), AppSettings.NomSede, RUC, AppSettings.Usuario, Convert.ToDecimal(TxtPagar.Text), NomCaja);


                            Int32 NotaIngresoID = 0;
                            NotaIngresoID = ObjCL_Pago.InsertPago(ObjE_Pago, ObjE_NotaIngreso, EstadoID);
                            MessageBox.Show("Se registro correctamente el pago", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            MessageBox.Show(FormatoImpresion, "Formato", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            LimpiarTodo();
                        }
                    }
                }
                else
                {
                    if (NumCaja == 0)
                    {
                        ErrProvider.SetError(LblCaja, "Debe seleccionar una caja");
                    }
                    if (cbFormaPago.SelectedIndex == -1)
                    {
                        ErrProvider.SetError(cbFormaPago, "Debe seleccionar un tipo de pago");
                    }
                    if (TxtPagar.Text == "" | TxtPagar.Text == ".")
                    {
                        ErrProvider.SetError(TxtPagar, "Debe ingresar un pago válido");
                    }
                    if (Pagar > PorPagarComprobante)
                    {
                        MessageBox.Show("Ha ingresado un pago mayor a la deuda", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }

                /*else if (Pagar == 0)
                 *  MessageBox.Show("No ha ingresado el monto a pagar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                 * else if (PorPagarComprobante == 0)
                 *  MessageBox.Show("El comprobante ya esta pagado o no existe o no ha sido consultado todavia", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);}
                 * */
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 9
0
        private void BtnIngresar_Click(object sender, EventArgs e)
        {
            ErrProvider.Clear();
            try
            {
                if (TxtCantidad.Text != "" & TxtConcepto.Text != "" & TxtSerie.Text != "" & TxtNumero.Text != "")
                {
                    //inserta un ingreso a la caja

                    //llenar el objPago
                    E_Pago ObjE_Pago = new E_Pago();
                    ObjE_Pago.PagoID            = 0;
                    ObjE_Pago.NumComprobante    = "";
                    ObjE_Pago.TipoComprobanteID = 0;
                    ObjE_Pago.Importe           = Convert.ToDecimal(TxtCantidad.Text);
                    ObjE_Pago.FormaPagoID       = 2;//contado
                    ObjE_Pago.UsuarioID         = AppSettings.UserID;


                    //llenar la nota de ingreso
                    E_NotaIngreso ObjE_NotaIngreso = new E_NotaIngreso();
                    ObjE_NotaIngreso.Tipo        = "E";//es salida
                    ObjE_NotaIngreso.Numcaja     = NumCaja;
                    ObjE_NotaIngreso.EmpresaID   = EmpresaID;
                    ObjE_NotaIngreso.Observacion = TxtConcepto.Text;
                    ObjE_NotaIngreso.LugarPago   = AppSettings.SedeID;
                    ObjE_NotaIngreso.Serie       = TxtSerie.Text;
                    ObjE_NotaIngreso.Numero      = TxtNumero.Text;


                    DataView DV = new DataView(UTI_Datatables.Dt_Configuracion, "Codigo ='IMP_PA'", "", DataViewRowState.CurrentRows);

                    if (DV.Count > 0)
                    {
                        NotaIngresoID = ObjCL_Pago.InsertPago(ObjE_Pago, ObjE_NotaIngreso, 12);

                        printDocument1.PrinterSettings.PrinterName = DV[0]["Data"].ToString();
                        printDocument1.Print();
                        MessageBox.Show("Se registro correctamente la salida de caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("no se ha seleccionado la impresora de pago, no se imprimira el Egreso", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        return;
                    }
                }
                else
                {
                    if (TxtCantidad.Text == "")
                    {
                        ErrProvider.SetError(TxtCantidad, "Debe ingresar una cantidad valida.");
                    }
                    if (TxtConcepto.Text == "")
                    {
                        ErrProvider.SetError(TxtConcepto, "Debe ingresar el concepto del egreso.");
                    }
                    if (TxtSerie.Text == "" | TxtSerie.Text == "000")
                    {
                        ErrProvider.SetError(TxtSerie, "Ingrese una serie correcta.");
                    }
                    if (TxtNumero.Text == "" | TxtNumero.Text == "0000000")
                    {
                        ErrProvider.SetError(TxtNumero, "Ingrese un número correcto.");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\rMetodo Ingresar inicio caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 10
0
        private void BtnPagar_Click(object sender, EventArgs e)
        {
            try
            {
                ErrProvider.Clear();
                //if (Actualizar == true && cbFormaPago.SelectedIndex != -1)
                if (TxtPagar.Text != "" & TxtPagar.Text != "." & cbFormaPago.SelectedIndex != -1)
                {
                    if (MessageBox.Show("¿Esta seguro que desea registrar el pago de los comprobantes seleccionados?", "Aviso", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                    {
                        //obtener monto digitado
                        MontoDigitado = Convert.ToDecimal(TxtPagar.Text);

                        foreach (DataRow DREM in DtEmpresas.Rows)
                        {
                            string EmpresaID  = DREM["EmpresaID"].ToString();
                            string NomEmpresa = DREM["NomEmpresa"].ToString();
                            string RUC        = DREM["RUC"].ToString();

                            //construir tabla
                            DataTable DtComprobanteE = new DataTable("Comprobante");
                            DtComprobanteE.Columns.Add("EmpresaID", typeof(string));
                            DtComprobanteE.Columns.Add("FormaPagoID", typeof(int));
                            DtComprobanteE.Columns.Add("Observacion", typeof(string));
                            DtComprobanteE.Columns.Add("NumComprobante", typeof(string));
                            DtComprobanteE.Columns.Add("TipoComprobanteID", typeof(int));
                            DtComprobanteE.Columns.Add("LugarPago", typeof(string));
                            DtComprobanteE.Columns.Add("Importe", typeof(decimal));
                            DtComprobanteE.Columns.Add("EstadoID", typeof(string));

                            //llenar tabla
                            decimal Valor = 0;
                            foreach (DataRow Dr in DtPM.Rows)
                            {
                                if (Dr["Pagar"] != DBNull.Value)
                                {
                                    if (Dr["Pagar"].ToString() != "" & Convert.ToBoolean(Dr["Pagar"]) == true & Dr["NumComprobante"].ToString().Substring(0, 2) == EmpresaID)
                                    {
                                        Valor = MontoDigitado - Convert.ToDecimal(Dr["TotalPagar"]);
                                        if (Valor >= 0)
                                        {
                                            MontoDigitado = MontoDigitado - Convert.ToDecimal(Dr["TotalPagar"]);//calcular el nuevo monto digitado
                                            DataRow DRE = DtComprobanteE.NewRow();
                                            DRE["EmpresaID"]         = Dr["NumComprobante"].ToString().Substring(0, 2);
                                            DRE["FormaPagoID"]       = cbFormaPago.SelectedValue;
                                            DRE["Observacion"]       = TxtObservacion.Text;
                                            DRE["NumComprobante"]    = Dr["NumComprobante"];
                                            DRE["TipoComprobanteID"] = Dr["TipoComprobanteID"];
                                            DRE["LugarPago"]         = AppSettings.SedeID;
                                            DRE["Importe"]           = Dr["TotalPagar"];
                                            DRE["EstadoID"]          = 12; //pagado
                                            DtComprobanteE.Rows.Add(DRE);
                                            MontoDevolver = MontoDigitado;

                                            TotalPagar += Convert.ToDecimal(Dr["TotalPagar"]);
                                        }
                                        else if (Valor < 0)
                                        {
                                            //seria una parte del pago
                                            DataRow DRE = DtComprobanteE.NewRow();
                                            DRE["EmpresaID"]         = Dr["NumComprobante"].ToString().Substring(0, 2);
                                            DRE["FormaPagoID"]       = cbFormaPago.SelectedValue;
                                            DRE["Observacion"]       = TxtObservacion.Text;
                                            DRE["NumComprobante"]    = Dr["NumComprobante"];
                                            DRE["TipoComprobanteID"] = Dr["TipoComprobanteID"];
                                            DRE["LugarPago"]         = AppSettings.SedeID;
                                            DRE["Importe"]           = MontoDigitado;
                                            DRE["EstadoID"]          = 13; //pago parcial
                                            DtComprobanteE.Rows.Add(DRE);
                                            MontoDevolver = 0;
                                            TotalPagar   += MontoDigitado;
                                            break;
                                        }
                                    }
                                }
                            }

                            //crear nota de ingreso
                            E_NotaIngreso ObjE_NotaIngreso = new E_NotaIngreso();
                            ObjE_NotaIngreso.EmpresaID   = EmpresaID;
                            ObjE_NotaIngreso.Tipo        = "I";
                            ObjE_NotaIngreso.Numcaja     = Numcaja;
                            ObjE_NotaIngreso.FormaPagoID = Convert.ToInt16(cbFormaPago.SelectedValue);
                            ObjE_NotaIngreso.Observacion = TxtObservacion.Text;
                            ObjE_NotaIngreso.LugarPago   = AppSettings.SedeID;
                            ObjE_NotaIngreso.Importe     = MontoDigitado;
                            ObjE_NotaIngreso.UsuarioID   = AppSettings.UserID;

                            //crear la nota de ingreso
                            Int32 NotaIngresoID = 0;
                            if (DtComprobanteE.Rows.Count > 0)
                            {
                                printDocument1.PrinterSettings.PrinterName = ImpresoraPago;
                                if (printDocument1.PrinterSettings.PrinterName != "")
                                {
                                    NotaIngresoID = ObjCL_Pago.UpdateXMLEstadoComprobantes(DtComprobanteE, ObjE_NotaIngreso);
                                    MessageBox.Show("Se almaceno los pagos correctamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);

                                    #region formato de etiquetera
                                    FormatoImpresion = ObjCL_Pago.FormatoTicketPago(NomEmpresa, CreditoID, NomCampanha, AppSettings.NomSede, RUC, AppSettings.Usuario.ToString(), TotalPagar, NomCaja);
                                    //MessageBox.Show(FormatoImpresion, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    #endregion
                                    printDocument1.Print();

                                    TotalPagar = 0;
                                }
                                else
                                {
                                    MessageBox.Show("Debe seleccionar una impresora valida. no se guardara el pago.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }
                        }
                    }
                    Close();
                }
                else
                {
                    if (cbFormaPago.SelectedIndex == -1)
                    {
                        ErrProvider.SetError(cbFormaPago, "Debe seleccionar una forma de pago");
                    }
                    if (Actualizar == false)
                    {
                        ErrProvider.SetError(TxtPagar, "Tal vez el monto ingresado no cubre la cantidad de comprobantes a pagar");
                        MessageBox.Show("Tal vez el monto ingresado no cubre la cantidad de comprobantes a pagar", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }