Exemple #1
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);
            }
        }
Exemple #2
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);
            }
        }