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