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