bool ProcesoAnulacion(int iReciboId) { Boolean bRetorno = false; string sMensaje = ""; BO.BO.Facturar oFact = new BO.BO.Facturar(); bRetorno = oFact.ProcesarAnulacion(iReciboId, Parametros.Parametros.UsuarioId, ref sMensaje); if (bRetorno == false) { MessageBox.Show(sMensaje, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Anulación realizada exitosamente en el sistema", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); //ImprimirFactura(oFact.FacturaGenerada); ImprimirFactura oImpFact = new ImprimirFactura(); BO.DAL.dsDatos.DatosPagoDataTable oDatosPago = null; oImpFact.Imprimir(oFact.FacturaGenerada, oDatosPago); //LimpiarPantalla(); } return(bRetorno); }
public void Imprimir(int iReciboId, BO.DAL.dsDatos.DatosPagoDataTable oDatosPago, bool pbImpreso = false) { //bool bError = false; PrinterResponses response; // dsFacturaBindingSource.DataSource = CargarDataSet(); BO.DAL.dsFactura.FACTURASDataTable dtFatura = new BO.DAL.dsFactura.FACTURASDataTable(); // DataTable dt = new DataTable(); dtFatura = CargarDataSetFiscal(iReciboId); //dt.TableName = "FACTURAS"; BO.Models.Terminal oTerm = new BO.Models.Terminal(); oTerm = unitOfWork.TerminalRepository.GetByID(Parametros.ParametrosSucursal.TermFiscalId); if (oTerm != null) { Printer oPrinter = new Printer(oTerm); oPrinter.SetInvoiceData(dtFatura, oDatosPago, !pbImpreso, 1); response = oPrinter.Print(); if (response == PrinterResponses.Success) { var oRecibos = unitOfWork.RecibosRepository.GetByID(iReciboId); oRecibos.IMPRESO = true; unitOfWork.RecibosRepository.Update(oRecibos); unitOfWork.Save(); } else { MessageBox.Show(Printer.GetPrinterReturnMessage(response), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //dsFacturas.Tables.Add(dt); }
public void ImprimirNoVenta(int iReciboId, BO.DAL.dsDatos.DatosPagoDataTable oDatosPago, bool pbImpreso = false) { bool bError = false; // dsFacturaBindingSource.DataSource = CargarDataSet(); BO.DAL.dsFactura.FACTURASDataTable dtFatura = new BO.DAL.dsFactura.FACTURASDataTable(); // DataTable dt = new DataTable(); dtFatura = CargarDataSetFiscal(iReciboId); //dt.TableName = "FACTURAS"; BO.Models.Terminal oTerm = new BO.Models.Terminal(); oTerm = unitOfWork.TerminalRepository.GetByID(Parametros.ParametrosSucursal.TermFiscalId); Printer oPrinter = new Printer(oTerm); oPrinter.SetInvoiceData(dtFatura, oDatosPago, !pbImpreso, 1); oPrinter.PrintNoFiscalReceipt(); /* if (bError == false) * { * var oRecibos = unitOfWork.RecibosRepository.GetByID(iReciboId); * oRecibos.IMPRESO = true; * unitOfWork.RecibosRepository.Update(oRecibos); * unitOfWork.Save(); * } * else * { * MessageBox.Show("Ha ocurrido un error en la Impresión del recibo, favor revisar la conexión ", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error); * } */ //dsFacturas.Tables.Add(dt); }
void FacturarNoVenta(BO.DAL.dsDatos.DatosPagoDataTable DatosPago, bool bCredito, decimal dMontoNoVenta, decimal dMontoEfectivo, decimal dMontoOtros) { ArrayList oBltNumeros = new ArrayList(); decimal dDevolucion = 0; if (bCredito) { //VALIDO QUE EL CLIENTE TENGA BALANCE if (oCliente.CTE_BALANCE_DISPONIBLE - Convert.ToDecimal(txtMontoTotal.Text) < 0) { MessageBox.Show("El balance disponible del cliente es de: " + oCliente.CTE_BALANCE_DISPONIBLE.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } }//Aqui tengo que ver si el cliente esta suspendido BultosAFacturar(ref oBltNumeros); BO.BO.Facturar oFact = new BO.BO.Facturar(); if (oFact.CrearFacturaNoVenta(dMontoEfectivo, dMontoOtros, dDevolucion, DatosPago, oCliente.CTE_ID, oCliente.CTE_TIPO_FISCAL, Parametros.Parametros.SucursalActual, Parametros.Parametros.UsuarioId, oBltNumeros, oTableCorr, dMontoNoVenta, bCredito)) {//Todo anduvo bien. Entonces Imprimo y limpio la pantalla. //ImprimirFactura(oFact.FacturaGenerada); ImprimirFactura oImpFact = new ImprimirFactura(); oImpFact.ImprimirNoVenta(oFact.FacturaGenerada, DatosPago); } }
void RetornaDatosPagos(BO.DAL.dsDatos.DatosPagoDataTable DatosPago, ref BO.DAL.dsDatos.DatosPagoDataTable newDatosPago, decimal dMonto, ref decimal dMontoEfectvo, ref decimal dMontoOtros) { decimal dMontoRestante = 0; foreach (BO.DAL.dsDatos.DatosPagoRow dr in DatosPago.OrderBy(p => p.TipoPago)) { /*Pago Efect*/ if (dr.TipoPago == -1) { if (dr.MontoEfectivo >= dMonto) { dMontoEfectvo = dMonto; BO.DAL.dsDatos.DatosPagoRow oNewRow = newDatosPago.NewDatosPagoRow(); oNewRow.MontoEfectivo = dMonto; oNewRow.Importe = dMonto; oNewRow.Numero = dr.Numero; oNewRow.TipoPago = dr.TipoPago; oNewRow.TipoPagoDesc = dr.TipoPagoDesc; oNewRow.Fecha = dr.Fecha; oNewRow.Devolucion = 0; oNewRow.Banco = dr.Banco; oNewRow.BancoDesc = dr.BancoDesc; newDatosPago.Rows.Add(oNewRow); break; } else { dMontoEfectvo = dr.MontoEfectivo; BO.DAL.dsDatos.DatosPagoRow oNewRow = newDatosPago.NewDatosPagoRow(); oNewRow.MontoEfectivo = dr.MontoEfectivo; oNewRow.Importe = dr.MontoEfectivo; oNewRow.Numero = dr.Numero; oNewRow.TipoPago = dr.TipoPago; oNewRow.TipoPagoDesc = dr.TipoPagoDesc; oNewRow.Fecha = dr.Fecha; oNewRow.Devolucion = 0; oNewRow.Banco = dr.Banco; oNewRow.BancoDesc = dr.BancoDesc; newDatosPago.Rows.Add(oNewRow); dMontoRestante = dMonto - dr.MontoEfectivo; } } else { dMontoOtros = dMonto; BO.DAL.dsDatos.DatosPagoRow oNewRow = newDatosPago.NewDatosPagoRow(); oNewRow.MontoEfectivo = 0; oNewRow.Importe = dMonto; oNewRow.Numero = dr.Numero; oNewRow.TipoPago = dr.TipoPago; oNewRow.TipoPagoDesc = dr.TipoPagoDesc; oNewRow.Fecha = dr.Fecha; oNewRow.Devolucion = 0; oNewRow.Banco = dr.Banco; oNewRow.BancoDesc = dr.BancoDesc; newDatosPago.Rows.Add(oNewRow); break; } } }
private void btnFacturar_Click(object sender, EventArgs e) { bool bPagado = false; decimal dMontoEfectivo, dMontoOtros, dDevolucion; ArrayList oRecibos = new ArrayList(); BO.DAL.dsDatos.DatosPagoDataTable DatosPago = new BO.DAL.dsDatos.DatosPagoDataTable(); Facturacion.frmDatosPago x = new Facturacion.frmDatosPago(txtMontoAplicar.DecimalValue); x.StartPosition = FormStartPosition.CenterParent; x.ShowDialog(); dMontoEfectivo = x.MontoEfectivo; dMontoOtros = x.MontoOtros; dDevolucion = x.Devolucion; DatosPago = x.DatosPago; if (x.DialogResult == System.Windows.Forms.DialogResult.OK) { bPagado = true; } if (bPagado == true) { foreach (DataGridViewRow oRow in dgRecibos.SelectedRows) { oRecibos.Add(oRow.Cells[0].Value); } if (oRecibos.Count > 0) { // RegistrarCobro(ArrayList pRecibos, int iCteId, int iUsuarioId, int iSucId, int iTipoFiscal, decimal pdMontoPagar, // decimal dMontoEfectivo, decimal dMontoOtros, decimal dDevolucion, DAL.dsDatos.DatosPagoDataTable oDatosPago) BO.BO.Facturar oFact = new BO.BO.Facturar(); if (oFact.RegistrarCobro(oRecibos, iCteId, Parametros.Parametros.UsuarioId, Parametros.Parametros.SucursalActual, -1, txtMontoAplicar.DecimalValue, dMontoEfectivo, dMontoOtros, dDevolucion, DatosPago) == true) { //ImprimirFactura(oFact.FacturaGenerada); Facturacion.ImprimirFactura oImpFact = new Facturacion.ImprimirFactura(); //Aca vamos a imprimir con el numero de omivimento de caja oImpFact.ImprimirComprobate(oFact.FacturaGenerada); LimpiarPantalla(); MessageBox.Show("Pago aplicado correctamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }
private void reImprimirToolStripMenuItem_Click(object sender, EventArgs e) { int iReciboId = -1; iReciboId = Convert.ToInt32(dgDatos[0, dgDatos.CurrentCell.RowIndex].Value); //BO.BO.Facturar oFact = new BO.BO.Facturar(); //oFact.RevisarTotales(iReciboId); // MessageBox.Show("Anulación realizada exitosamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); //ImprimirFactura(oFact.FacturaGenerada); unitOfWork = new BO.DAL.UnitOfWork(); var Recibos = unitOfWork.RecibosRepository.GetByID(iReciboId); if (Recibos != null) { BO.DAL.dsDatos.DatosPagoDataTable oPagos = new BO.DAL.dsDatos.DatosPagoDataTable(); bool bImpreso = Recibos.IMPRESO; if (bImpreso == false && Recibos.ESTADO_ID != 15) { DialogResult oResult = MessageBox.Show("Este recibo no se ha impreso fiscalmente, ¿desea imprimirlo ahora?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (oResult == System.Windows.Forms.DialogResult.No) { return; } } else if (Recibos.ESTADO_ID == 15) { DialogResult oResult = MessageBox.Show("Este recibo fue anulado, no es posible reimprimir", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1); return; } else { DialogResult oResult = MessageBox.Show("Este recibo ya fue impreso fiscalmente, no es posible reimprimir", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1); return; } var PagosRecibos = unitOfWork.PagosRecibosRepository.Get(xy => xy.RECIBO_ID == iReciboId).FirstOrDefault(); if (PagosRecibos != null) { var pagos = unitOfWork.PagosRepository.Get(filter: xy => xy.PAGO_ID == PagosRecibos.PAGO_ID).FirstOrDefault(); var DatosPagos = unitOfWork.DatosPagoRepository.Get(xy => xy.PAGO_ID == pagos.PAGO_ID); foreach (var datosPago in DatosPagos) { BO.DAL.dsDatos.DatosPagoRow oRow = oPagos.NewDatosPagoRow(); oRow.Banco = datosPago.BANCO_ID; oRow.BancoDesc = ""; oRow.Devolucion = 0; oRow.Fecha = DateTime.Now; oRow.Importe = datosPago.IMPORTE; oRow.MontoEfectivo = pagos.MONTO_EFECTIVO; oRow.Numero = 0; oRow.TipoPago = pagos.TIPO_ID; oRow.TipoPagoDesc = ""; oPagos.Rows.Add(oRow); } if (DatosPagos == null || DatosPagos.Any() == false) { BO.DAL.dsDatos.DatosPagoRow oRow = oPagos.NewDatosPagoRow(); oRow.Banco = -1; oRow.BancoDesc = ""; oRow.Devolucion = 0; oRow.Fecha = DateTime.Now; oRow.Importe = pagos.IMP_PAGO; oRow.MontoEfectivo = pagos.MONTO_EFECTIVO; oRow.Numero = 99; oRow.TipoPago = -1; oRow.TipoPagoDesc = ""; oPagos.Rows.Add(oRow); } } if (Recibos.TIPO_REC_ID == 62) //No venta { ImprimirFactura oImpFact = new ImprimirFactura(); oImpFact.ImprimirNoVenta(iReciboId, oPagos); } else { ImprimirFactura oImpFact = new ImprimirFactura(); oImpFact.Imprimir(iReciboId, oPagos); } } }
void FacturarVenta() { ArrayList oBltNumeros = new ArrayList(); bool bCredito, bPagado = false; decimal dMontoEfectivo = 0; decimal dMontoOtros = 0; decimal dDevolucion = 0; decimal dMontoEfectivoNoventa = 0; decimal dMontoOtrosNoVenta = 0; decimal dMontoEfectivoVenta = 0; decimal dMontoOtrosVenta = 0; BO.DAL.dsDatos.DatosPagoDataTable DatosPago = new BO.DAL.dsDatos.DatosPagoDataTable(); BO.DAL.dsDatos.DatosPagoDataTable DatosPagoNoVenta = new BO.DAL.dsDatos.DatosPagoDataTable(); BO.DAL.dsDatos.DatosPagoDataTable DatosPagoVenta = new BO.DAL.dsDatos.DatosPagoDataTable(); bCredito = cmbTipoFact.SelectedIndex == 1; if (!bCredito) { frmDatosPago x = new frmDatosPago(dMontoVenta + dMontoNoVenta); x.StartPosition = FormStartPosition.CenterParent; x.ShowDialog(); dMontoEfectivo = x.MontoEfectivo; dMontoOtros = x.MontoOtros; dDevolucion = x.Devolucion; DatosPago = x.DatosPago; if (x.DialogResult == System.Windows.Forms.DialogResult.OK) { bPagado = true; } else { return; } if (DatosPago.Rows.Count == 0) { BO.DAL.dsDatos.DatosPagoRow oRow = DatosPago.NewDatosPagoRow(); oRow.Banco = -1; oRow.BancoDesc = ""; oRow.Devolucion = dDevolucion; oRow.Fecha = DateTime.Now; oRow.Importe = Convert.ToDecimal(txtMontoTotal.Text); oRow.MontoEfectivo = dMontoEfectivo; oRow.Numero = 99; oRow.TipoPago = -1; oRow.TipoPagoDesc = ""; DatosPago.Rows.Add(oRow); } } else { //VALIDO QUE EL CLIENTE TENGA BALANCE if (oCliente.CTE_BALANCE_DISPONIBLE - Convert.ToDecimal(txtMontoTotal.Text) < 0) { MessageBox.Show("El balance disponible del cliente es de: " + oCliente.CTE_BALANCE_DISPONIBLE.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } bPagado = false; } /*Tengo que hacer doble desglose*/ if (dMontoNoVenta > 0) { if (bCredito == false) { RetornaDatosPagos(DatosPago, ref DatosPagoNoVenta, dMontoNoVenta, ref dMontoEfectivoNoventa, ref dMontoOtrosNoVenta); } FacturarNoVenta(DatosPagoNoVenta, bCredito, dMontoNoVenta, dMontoEfectivoNoventa, dMontoOtrosNoVenta); } if (dMontoVenta > 0) { dMontoEfectivoVenta = dMontoEfectivo - dMontoEfectivoNoventa; if (!bCredito) { if (bCredito == false) { RetornaDatosPagos(DatosPago, ref DatosPagoVenta, dMontoVenta, ref dMontoEfectivoVenta, ref dMontoOtrosVenta); } } if ((bCredito == true) || (bPagado == true)) { }//Aqui tengo que ver si el cliente esta suspendido BultosAFacturar(ref oBltNumeros); BO.BO.Facturar oFact = new BO.BO.Facturar(); if (oFact.CrearFactura(dMontoEfectivoVenta, dMontoOtrosVenta, dDevolucion, DatosPagoVenta, oCliente.CTE_ID, oCliente.CTE_TIPO_FISCAL, Parametros.Parametros.SucursalActual, Parametros.Parametros.UsuarioId, oBltNumeros, oTableCorr, dMontoVenta, bCredito)) {//Todo anduvo bien. Entonces Imprimo y limpio la pantalla. //ImprimirFactura(oFact.FacturaGenerada); //BO.BO.Facturar oFact = new BO.BO.Facturar(); oFact.RevisarTotales(oFact.FacturaGenerada); ImprimirFactura oImpFact = new ImprimirFactura(); oImpFact.Imprimir(oFact.FacturaGenerada, DatosPago); } } }
private void btnFacturar_Click(object sender, EventArgs e) { bool bCredito, bPagado = false; decimal dMontoEfectivo = 0; decimal dMontoOtros = 0; decimal dDevolucion = 0; BO.DAL.dsDatos.DatosPagoDataTable DatosPago = new BO.DAL.dsDatos.DatosPagoDataTable(); if (cmbTipoFact.SelectedIndex == 1) { bCredito = true; } else { bCredito = false; } if (!bCredito) { frmDatosPago x = new frmDatosPago(Convert.ToDecimal(txtMontoTotal.Text)); x.StartPosition = FormStartPosition.CenterParent; x.ShowDialog(); dMontoEfectivo = x.MontoEfectivo; dMontoOtros = x.MontoOtros; dDevolucion = x.Devolucion; DatosPago = x.DatosPago; if (x.DialogResult == System.Windows.Forms.DialogResult.OK) { bPagado = true; } if (DatosPago.Rows.Count == 0) { BO.DAL.dsDatos.DatosPagoRow oRow = DatosPago.NewDatosPagoRow(); oRow.Banco = -1; oRow.BancoDesc = ""; oRow.Devolucion = dDevolucion; oRow.Fecha = DateTime.Now; oRow.Importe = Convert.ToDecimal(txtMontoTotal.Text); oRow.MontoEfectivo = dMontoEfectivo; oRow.Numero = 99; oRow.TipoPago = -1; oRow.TipoPagoDesc = ""; DatosPago.Rows.Add(oRow); } } else { bPagado = false; } if ((bCredito == true) || (bPagado == true)) { if (bCredito) { //VALIDO QUE EL CLIENTE TENGA BALANCE if (oCliente.CTE_BALANCE_DISPONIBLE - Convert.ToDecimal(txtMontoTotal.Text) < 0) { MessageBox.Show("El balance disponible del cliente es de: " + oCliente.CTE_BALANCE_DISPONIBLE.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } }//Aqui tengo que ver si el cliente esta suspendido BO.BO.Facturar oFact = new BO.BO.Facturar(); if (oFact.CrearFacturaEnvio(dMontoEfectivo, dMontoOtros, dDevolucion, DatosPago, oCliente.CTE_ID, oCliente.CTE_TIPO_FISCAL, Parametros.Parametros.SucursalActual, Parametros.Parametros.UsuarioId, oEnvio, oUnidades, Convert.ToDecimal(txtMontoTotal.Text), bCredito)) {//Todo anduvo bien. Entonces Imprimo y limpio la pantalla. //ImprimirFactura(oFact.FacturaGenerada); ImprimirFactura oImpFact = new ImprimirFactura(); oImpFact.Imprimir(oFact.FacturaGenerada, DatosPago); LimpiarPantalla(); } } }