//encapsula el recalculo de la ficha al dia de hoy public FICHA CalcularFichaAlDiaDeHoy(FICHA Ficha) { decimal TotalFicha = 0; if (Ficha != null) { foreach (var detalle in Ficha.DETALLES_FICHA) { decimal TotalDetalle = 0; if (detalle.PRO_ID != null) //es producto { decimal PRECIOUNIDAD = (detalle.PRODUCTO.PRO_ESTADOPROMO == true) ? (decimal)detalle.PRODUCTO.PRO_PRECIOPROMO : detalle.PRODUCTO.PRO_PRECIOVTA; TotalDetalle = PRECIOUNIDAD * detalle.DETF_CANTIDAD; Ficha.DETALLES_FICHA.First(x => x.DETF_ID == detalle.DETF_ID).DETF_TOTAL = TotalDetalle; } if (detalle.CAT_ID != null) //es categoria { TotalDetalle += detalle.DETF_TOTAL; } if (detalle.ENV_ID != null) //es envase { var PRECIOUNIDAD = detalle.ENVASE.ENV_PRECIO; TotalDetalle = PRECIOUNIDAD * detalle.DETF_CANTIDAD; Ficha.DETALLES_FICHA.First(x => x.DETF_ID == detalle.DETF_ID).DETF_TOTAL = TotalDetalle; } TotalFicha += TotalDetalle; } Ficha.FIC_TOTAL = TotalFicha; } return Ficha; }
public void Alta(FICHA objeto) { using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia()) { //AUDITORIA objeto.AU_ACCION = "A"; objeto.AU_FECHA_HORA = System.DateTime.Now; objeto.AU_USUARIO = Common.Seguridad.UsuarioLog; // ctx.FICHA.AddObject(objeto); ctx.SaveChanges(); } }
public void Modificacion(FICHA objeto) { using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia()) { //AUDITORIA objeto.AU_ACCION = "M"; objeto.AU_FECHA_HORA = System.DateTime.Now; objeto.AU_USUARIO = Common.Seguridad.UsuarioLog; // ctx.FICHA.Attach(objeto); ctx.ObjectStateManager.ChangeObjectState(objeto, System.Data.EntityState.Modified); ctx.SaveChanges(); } }
public decimal CalcularTotalFichaAlDiaDeHoy(FICHA Ficha) { decimal TotalFicha = 0; if (Ficha != null) { foreach (var detalle in Ficha.DETALLES_FICHA) { if (detalle.PRO_ID != null) //es producto { var PRECIOUNIDAD = (detalle.PRODUCTO.PRO_ESTADOPROMO == true) ? (decimal)detalle.PRODUCTO.PRO_PRECIOPROMO : detalle.PRODUCTO.PRO_PRECIOVTA; var SUBTOTAL = PRECIOUNIDAD * detalle.DETF_CANTIDAD; TotalFicha += SUBTOTAL; } if (detalle.CAT_ID != null) //es categoria { TotalFicha += detalle.DETF_TOTAL; } if (detalle.ENV_ID != null) //es envase { var SUBTOTAL = (decimal)detalle.ENVASE.ENV_PRECIO * detalle.DETF_CANTIDAD; TotalFicha += SUBTOTAL; } } } return TotalFicha; }
//public void BajaLogica(FICHA entidad) //{ // entidad.CLI_ESTADO = false; // mFICHAS.Modificacion(); //} public void BajaFisica(FICHA entidad) { mFICHAS.Baja(entidad); }
public FICHA AltaConRetorno(FICHA entidad) { return mFICHAS.AltaConRetorno(entidad); }
public void Alta(FICHA entidad) { mFICHAS.Alta(entidad); }
public void Modificacion(FICHA entidad) { mFICHAS.Modificacion(entidad); }
/// <summary> /// Crear un nuevo objeto FICHA. /// </summary> /// <param name="fIC_ID">Valor inicial de la propiedad FIC_ID.</param> /// <param name="fIC_FECHAAPERTURA">Valor inicial de la propiedad FIC_FECHAAPERTURA.</param> /// <param name="fIC_ESTADOAPERTURA">Valor inicial de la propiedad FIC_ESTADOAPERTURA.</param> /// <param name="cLI_ID">Valor inicial de la propiedad CLI_ID.</param> public static FICHA CreateFICHA(global::System.Int32 fIC_ID, global::System.DateTime fIC_FECHAAPERTURA, global::System.Boolean fIC_ESTADOAPERTURA, global::System.Int32 cLI_ID) { FICHA fICHA = new FICHA(); fICHA.FIC_ID = fIC_ID; fICHA.FIC_FECHAAPERTURA = fIC_FECHAAPERTURA; fICHA.FIC_ESTADOAPERTURA = fIC_ESTADOAPERTURA; fICHA.CLI_ID = cLI_ID; return fICHA; }
/// <summary> /// Método desusado para agregar un nuevo objeto al EntitySet FICHA. Considere la posibilidad de usar el método .Add de la propiedad ObjectSet<T> asociada. /// </summary> public void AddToFICHA(FICHA fICHA) { base.AddObject("FICHA", fICHA); }
public List<DETALLE_FICHA> ObtenerDetallesPorFicha(FICHA ficha) { var query = ObtenerTodos() .Where(x => x.FIC_ID == ficha.FIC_ID); return query.ToList(); }
private bool Cobrar_Venta() { decimal totalPago = 0; decimal totalDifTarjeta = 0; if (dgvGrilla.DataSource == null) { MostrarMensajeAdvertencia("Debe ingresar al menos un producto para la venta"); txtCodigoBarra.Text = string.Empty; txtCodigoBarra.Focus(); return false; } //PREGUNTA SI ES EN EFECTIVO O CTA CTE O TARJETA O CHEQUE //SI ES EN EFECTIVO ABRE FRM PAGACON if (FormaPago.FOR_DESCRIPCION.Contains(Constantes.Efectivo)) { frmPAGACON frm = new frmPAGACON(Convert.ToDecimal(txtTotal.Text), "frmVENTAS", null); DialogResult dr = frm.ShowDialog(); if (dr != DialogResult.OK || MontoPagaCon == null) { MostrarMensajeAdvertencia("Debe Ingresar el Monto a Pagar."); return false; } lblPagaCon.Text = Convert.ToDecimal(MontoPagaCon).ToString("0.000"); } //SI ES CON CTA CTE ABRE FRM SELCCIONAR CTA CTE if (FormaPago.FOR_DESCRIPCION.Contains("CTA CTE")) { //selecciono el cliente y muestro cartel que diga "La Vta de total "", se asignara a la cta cte del cliente "cliente", //el saldo total de la deuda de la cta cte es "saldo cta cte". OK para confirmar CANCELAR para cambiar la foma de pago //si viene por ok doy de alta el movimiento en la cta cte del cliente y dejo habilitado solamente los botones de imprimir ticket //si es cancelar vuelve al frm vtas y habilita el boton frm forma de pago //ABRO FRM BUSCAR CLIENTE if (!ClienteConsumidorFinal) { if (Cliente == null) { frmBUSCACLIENTECONCTACTE frm = new frmBUSCACLIENTECONCTACTE(Constantes.venta); DialogResult dr = frm.ShowDialog(); if (dr != DialogResult.OK) { if (Cliente == null) { MostrarMensajeAdvertencia("La forma de pago es por medio de CTA CTE, para ello debe seleccionar un cliente"); return false; } } } var CTA_CLIENTE = cCLIENTE.ObtenerCtaCteCliente(Cliente); if (CTA_CLIENTE == null) { MostrarMensajeAdvertencia("El Cliente seleccionado no tiene creada una Cta Cte.\n Para crear una debe comunicarse con un usuario administrador."); btnCliente.Enabled = true; return false; } if (!ValidaTopeCtaCte()) { return false; } var SALDO_CTA = CTA_CLIENTE.CCC_SALDO + Convert.ToDecimal(txtTotal.Text); var rta = MostrarMensajePreguntaSI_NO("El total de la venta $" + txtTotal.Text + " , será asignada a la cta cte del cliente: " + Cliente.CLI_NOMBREYAPELLIDO + " .\n El saldo de la cuenta es: $" + SALDO_CTA + " .\n OK para confirmar o CANCEL para volver a la venta."); if (!rta) { return false; } else { lblPagaCon.Text = Convert.ToDecimal(txtTotal.Text).ToString("0.000"); } } } //SI ES CON CHEQUE CREA Y DA DE ALTA EL CHEQUE if (FormaPago.FOR_DESCRIPCION.Contains(Constantes.Cheque)) { //ALTA CHEQUE frmCHEQUE frm = new frmCHEQUE(Cheque, Convert.ToDecimal(txtTotal.Text), "frmVENTAS", null); DialogResult dr = frm.ShowDialog(); if (dr != DialogResult.OK || Cheque == null) { MostrarMensajeAdvertencia("Debe Ingresar el Cheque."); return false; } lblPagaCon.Text = Convert.ToDecimal(Cheque.CHE_VALOR).ToString("0.000"); } //SI ES CON TARJETA CREA Y DA DE ALTA DE TARJETA if (FormaPago.FOR_DESCRIPCION.Contains(Constantes.Tarjeta)) { frmTARJETA frm = new frmTARJETA(Tarjeta, Convert.ToDecimal(txtTotal.Text), "frmVENTAS", null); DialogResult dr = frm.ShowDialog(); if (dr != DialogResult.OK || Tarjeta == null) { MostrarMensajeAdvertencia("Debe Ingresar la Tarjeta."); return false; } lblDiferenciaTarjeta.Visible = txtDiferenciaTarjeta.Visible = true; lblPagaCon.Text = Convert.ToDecimal(Tarjeta.TARJ_TOTALAPAGAR).ToString("0.000"); txtDiferenciaTarjeta.Text = Convert.ToDecimal(Tarjeta.TARJ_DIFTARJETA).ToString("0.000"); txtTotal.Text = Convert.ToDecimal(Tarjeta.TARJ_TOTALAPAGAR).ToString("0.00"); } //SI ES CON NOTA DE CREDITO if (FormaPago.FOR_DESCRIPCION.Contains(Constantes.NotaCredito)) { //BUSCO LA NOTA DE CREDITO frmNOTACREDITO frm = new frmNOTACREDITO(Nota_Credito, Convert.ToDecimal(txtTotal.Text), "frmVENTAS", null); DialogResult dr = frm.ShowDialog(); if (dr != DialogResult.OK || Nota_Credito == null) { MostrarMensajeAdvertencia("Debe Ingresar una Nota de Crédito."); return false; } lblPagaCon.Text = Convert.ToDecimal(Nota_Credito.NOT_TOTAL).ToString("0.000"); } if (FormaPago.FOR_DESCRIPCION.Contains(Constantes.Multiple)) { frmMULTIPLEPAGO frm = new frmMULTIPLEPAGO(eMULTIPLE, Convert.ToDecimal(txtTotal.Text)); DialogResult drRESULTADO = frm.ShowDialog(); if (frmVENTAS.ListaMultiplesPagos == null) { MostrarMensajeAdvertencia("Debe Ingresar pagos Multiples."); return false; } foreach (var item in frmVENTAS.ListaMultiplesPagos) { switch (item.FORM_PAGO) { case Constantes.Cheque: totalPago += (decimal)item.CHE_VALOR; break; case Constantes.NotaCredito: totalPago += (decimal)item.NOTA_CREDITO.NOT_TOTAL; break; case Constantes.Tarjeta: totalPago += (decimal)item.TARJ_TOTALAPAGAR; totalDifTarjeta += (decimal)item.TARJ_DIFTARJETA; break; case Constantes.Efectivo: totalPago += item.EFEC_MONTO; break; default: break; } } //valida si MontoPagaCon == null porque cancelo if (totalPago == null || totalPago == 0) { MostrarMensajeAdvertencia("Debe Ingresar el Monto a Pagar."); return false; } lblDiferenciaTarjeta.Visible = txtDiferenciaTarjeta.Visible = true; lblPagaCon.Text = Convert.ToDecimal(totalPago).ToString("0.000"); txtDiferenciaTarjeta.Text = Convert.ToDecimal(totalDifTarjeta).ToString("0.000"); txtTotal.Text = Convert.ToDecimal(totalPago).ToString("0.00"); } if (FormaPago.FOR_DESCRIPCION.Contains(Constantes.Ficha)) { if (!ClienteConsumidorFinal) { if (Cliente == null) { frmBUSCACLIENTECONCTACTE frm = new frmBUSCACLIENTECONCTACTE(Constantes.venta); DialogResult dr = frm.ShowDialog(); if (dr != DialogResult.OK) { if (Cliente == null) { MostrarMensajeAdvertencia("La forma de pago es por medio de FICHA, para ello debe seleccionar un cliente"); return false; } } } var CTA_CLIENTE = cCLIENTE.ObtenerCtaCteCliente(Cliente); if (CTA_CLIENTE == null) { MostrarMensajeAdvertencia("El Cliente seleccionado no tiene creada una Cta Cte. \n Para crear una debe comunicarse con un usuario administrador."); btnCliente.Enabled = true; return false; } var FICHA_CLIENTE = cFICHA.ObtenerFichaAbiertaCliente(Cliente); if (FICHA_CLIENTE == null) { var rta = MostrarMensajePreguntaSI_NO("El Cliente seleccionado no tiene ninguna ficha abierta. Desea abrirle una?"); if (!rta) { return false; } else { //creo una ficha nueva Ficha = new FICHA(); Ficha.CLI_ID = Cliente.CLI_ID; Ficha.FIC_ESTADOAPERTURA = true; Ficha.FIC_FECHAAPERTURA = DateTime.Now; Ficha.FIC_TOTAL = 0; Ficha = cFICHA.AltaConRetorno(Ficha); } } else { //tomo la ficha abierta del cliente Ficha = FICHA_CLIENTE; } //VALIDACION DE TOPE CTA CTE EN LA VENTA DE FICHA var SALDO_CTA = CTA_CLIENTE.CCC_SALDO; var TotalEstimadoFIcha = cFICHA.CalcularTotalFichaAlDiaDeHoy(Ficha); var totalDeuda = SALDO_CTA + Convert.ToDecimal(txtTotal.Text) + TotalEstimadoFIcha; if (CTA_CLIENTE.CLIENTE.CLI_MAXTOPE_CTACTE != 0 && CTA_CLIENTE.CLIENTE.CLI_MAXTOPE_CTACTE < totalDeuda) { MostrarMensajeAdvertencia("No se puede realizar la vta mediante ficha porque la suma de la ficha actual ($" + txtTotal.Text + ") y el saldo de la cta cte ($" + SALDO_CTA + ") supera el tope maximo permitido al cliente: " + Cliente.CLI_NOMBREYAPELLIDO + "."); btnCliente.Enabled = true; return false; } var rta2 = MostrarMensajePreguntaSI_NO("Será asignada a la FICHA del cliente: " + Cliente.CLI_NOMBREYAPELLIDO + " . \n El saldo de la cuenta corriente es: $" + SALDO_CTA + " . \n Aceptar para confirmar o Cancelar para volver a la venta."); if (!rta2) { return false; } lblPagaCon.Text = Convert.ToDecimal(txtTotal.Text).ToString("0.000"); } } lblVuelto.Text = (Convert.ToDecimal(lblPagaCon.Text) - Convert.ToDecimal(txtTotal.Text)).ToString(); PagaConVenta = lblPagaCon.Text; VueltoVenta = lblVuelto.Text; TotalVenta = txtTotal.Text; //visibilidad y habilitado de botones txtCodigoBarra.Enabled = false; cmbProducto.Enabled = false; btnDESCUENTO.Enabled = false; btnELIMINARPRODUCTO.Enabled = false; btnCANTIDAD.Enabled = false; btnPRODUCTOSINCODIGO.Enabled = false; btnVentaAnterior.Enabled = ImpresoraOK; btnTICKETFISCAL.Enabled = ImpresoraOK; btnNoTicket.Enabled = true; btnCancela.Enabled = true; btnTICKETFISCAL.Focus(); return true; }
public List<DETALLE_FICHA> ObtenerDetallesPorFicha(FICHA ficha) { return mDETALLE_FICHAS.ObtenerDetallesPorFicha(ficha); }
private void dgvGRILLA_FICHAS_CellClick(object sender, DataGridViewCellEventArgs e) { try { if (dgvGRILLA_FICHAS.CurrentRow == null) { MostrarMensajeAdvertencia(Mensajes.SeleccionarItem); return; } ARMA_GRILLA_DETALLE_FICHA(); var fichaSeleccionada = cFICHA.ObtenerPorID(Convert.ToInt32(dgvGRILLA_FICHAS.CurrentRow.Cells[0].Value)); var fichaAldiaDeHoy = new FICHA(); fichaAldiaDeHoy = cFICHA.CalcularFichaAlDiaDeHoy(fichaSeleccionada); decimal TotalFicha = (decimal)fichaAldiaDeHoy.FIC_TOTAL; lblTOTALFICHA.Text = TotalFicha.ToString("0.000"); } catch (Exception ex) { ProcesarExcepcion(ex); } }
private bool Cobrar_Venta(FICHA fichaAldiaDeHoy) { var CTA_CLIENTE = cCLIENTESES.ObtenerCtaCteCliente(Cliente); if (CTA_CLIENTE == null) { MostrarMensajeAdvertencia("El Cliente seleccionado no es válido."); return false; } var tot = fichaAldiaDeHoy.FIC_TOTAL; var SALDO_CTA = CTA_CLIENTE.CCC_SALDO + tot; var rta = MostrarMensajePreguntaSI_NO("El total de la ficha $ " + tot + ", será asignada a la cta cte del cliente " + Cliente.CLI_NOMBREYAPELLIDO + ".\n El saldo de la cuenta es: " + SALDO_CTA + ".\n OK para confirmar o CANCEL para volver a la vta."); if (!rta) { return false; } return true; }
private void btnCERRARFICHA_Click(object sender, EventArgs e) { //GENERAR LA VENTA SIN ACTUALIZAR STOCK PORQUE EL STOCK YA SE RESTO CUANDO SE VENDIO try { if (dgvGRILLA_FICHAS.CurrentRow == null) { MostrarMensajeAdvertencia(Mensajes.SeleccionarItem); return; } if (!validar_CerrarFicha()) return; var fichaSeleccionada = cFICHA.ObtenerPorID(Convert.ToInt32(dgvGRILLA_FICHAS.CurrentRow.Cells[0].Value)); var fichaAldiaDeHoy = new FICHA(); fichaAldiaDeHoy = cFICHA.CalcularFichaAlDiaDeHoy(fichaSeleccionada); var TotalFicha = fichaAldiaDeHoy.FIC_TOTAL; var rta = MostrarMensajePreguntaSI_NO("Al cerrar la ficha se genera una venta con cuenta corriente.\n Se guardará un movimiento en la cta cte del cliente " + ((CLIENTE)cmbCLIENTE.SelectedItem).CLI_NOMBREYAPELLIDO + ", con un total del movimiento de " + TotalFicha + ". Desea Continuar?\r\n."); if (!rta) return; if (!Valida_Caja()) { return; }; if (!Cobrar_Venta(fichaAldiaDeHoy)) { return; }; using (TransactionScope TRANSACCION = new TransactionScope()) { //Comprobante = new COMPROBANTE(); //TipoComprobante = cTIPO_COMPROBANTES.ObtenerPorDescripcion(Constantes.Ticket); //int nroComprobante = (int)TipoComprobante.TIC_ULTIMONUMERO; //Comprobante.TIC_ID = TipoComprobante.TIC_ID; //Comprobante.COM_NROCOMPROBANTE = nroComprobante.ToString(); //TipoComprobante.TIC_ULTIMONUMERO = nroComprobante + 1; //cTIPO_COMPROBANTES.Modificacion(TipoComprobante); //Comprobante = cCOMPROBANTE.AltaConRetorno(Comprobante); VENTA NuevaVta = new VENTA(); NuevaVta.VTA_FECHA = DateTime.Now; NuevaVta.VTA_COLOR = "B"; NuevaVta.VTA_PORCENTAJEDESCUENTO = 0; NuevaVta.VTA_DIFTARJETA = 0; NuevaVta.VTA_SUBTOTAL = fichaAldiaDeHoy.FIC_TOTAL; NuevaVta.VTA_TOTAL = fichaAldiaDeHoy.FIC_TOTAL; NuevaVta.VTA_CACELADA = false; NuevaVta.FOR_ID = cFORMA_PAGO.ObtenerPorDescripcion(Constantes.CtaCte).FOR_ID; NuevaVta.CAJ_ID = CajaPerteneciente.CAJ_ID; //NuevaVta.COM_ID = Comprobante.COM_ID; NuevaVta.VTA_MONTOPAGO = 0; // SI ES FACTURA A ASEGURARSE QUE SE TIENEN LOS DATOS DEL CLIENTE SI ES. NuevaVta.VTA_CONSUMIDORFINAL = false; NuevaVta.CLI_ID_CONSUMIDOR = Cliente.CLI_ID; NuevaVta = cVENTAS.AltaConRetorno(NuevaVta); foreach (var linea in fichaAldiaDeHoy.DETALLES_FICHA) { LINEA_VENTA NuevaLinea = new LINEA_VENTA(); if (linea.PRO_ID != null) //es producto { NuevaLinea.LIN_DESCRIPCION = linea.DETF_DESCRIPCION; NuevaLinea.LIN_DESCRESUMIDA = linea.DETF_DESCRESUMIDA; NuevaLinea.LIN_PRECIOUNIDAD = (linea.PRODUCTO.PRO_ESTADOPROMO == true) ? (decimal)linea.PRODUCTO.PRO_PRECIOPROMO : linea.PRODUCTO.PRO_PRECIOVTA; NuevaLinea.LIN_CANTIDAD = linea.DETF_CANTIDAD; NuevaLinea.LIN_TOTAL = linea.PRODUCTO.PRO_PRECIOVTA * linea.DETF_CANTIDAD; NuevaLinea.LIN_ESTADOPROMO = linea.DETF_ESTADOPROMO; NuevaLinea.PRO_ID = linea.PRO_ID; NuevaLinea.VTA_ID = NuevaVta.VTA_ID; cLINEA_VENTA.Alta(NuevaLinea); if (linea.DETF_TOTAL != NuevaLinea.LIN_TOTAL) { linea.DETF_TOTAL = NuevaLinea.LIN_TOTAL; cDETALLE_FICHA.Modificacion(linea); } } if (linea.CAT_ID != null) //es categoria { NuevaLinea.LIN_DESCRIPCION = linea.DETF_DESCRIPCION; NuevaLinea.LIN_DESCRESUMIDA = linea.DETF_DESCRESUMIDA; NuevaLinea.LIN_PRECIOUNIDAD = linea.DETF_PRECIOUNIDAD; NuevaLinea.LIN_CANTIDAD = linea.DETF_CANTIDAD; NuevaLinea.LIN_TOTAL = linea.DETF_TOTAL; NuevaLinea.LIN_ESTADOPROMO = linea.DETF_ESTADOPROMO; NuevaLinea.CAT_ID = linea.CAT_ID; NuevaLinea.VTA_ID = NuevaVta.VTA_ID; cLINEA_VENTA.Alta(NuevaLinea); } if (linea.ENV_ID != null) //es envase { NuevaLinea.LIN_DESCRIPCION = linea.DETF_DESCRIPCION; NuevaLinea.LIN_DESCRESUMIDA = linea.DETF_DESCRESUMIDA; NuevaLinea.LIN_PRECIOUNIDAD = linea.ENVASE.ENV_PRECIO; NuevaLinea.LIN_CANTIDAD = linea.DETF_CANTIDAD; NuevaLinea.LIN_TOTAL = linea.ENVASE.ENV_PRECIO * linea.DETF_CANTIDAD; NuevaLinea.LIN_ESTADOPROMO = linea.DETF_ESTADOPROMO; NuevaLinea.ENV_ID = linea.ENV_ID; NuevaLinea.VTA_ID = NuevaVta.VTA_ID; cLINEA_VENTA.Alta(NuevaLinea); if (linea.DETF_TOTAL != NuevaLinea.LIN_TOTAL) { linea.DETF_TOTAL = NuevaLinea.LIN_TOTAL; cDETALLE_FICHA.Modificacion(linea); } } } //SI ES UNA CTA CTE LA FORMA DE PAGO DOY DE ALTA EL MOVIMIENTO DE LA CTA CTE Y ACTUALIZO LA CTA DEL CLIENTE TIPO_MOVIMIENTO eTIPO_MOVIMIENTO = cTIPO_MOVIMIENTOS.ObtenerPorDescripcion(TipoComprobante.TIC_DESCRIPCION); //GENERO LA CUENTA CORRIENTE CONTROLADORA.cCTACTE_CLIENTE cCTACTE_CLIENTES = CONTROLADORA.cCTACTE_CLIENTE.ObtenerInstancia(); CONTROLADORA.cMOVIMIENTO_CTACTE_CLIENTE cMOVIMIENTO_CTACTE_CLIENTES = CONTROLADORA.cMOVIMIENTO_CTACTE_CLIENTE.ObtenerInstancia(); if (eTIPO_MOVIMIENTO == null) { eTIPO_MOVIMIENTO = cTIPO_MOVIMIENTOS.ObtenerPorDescripcion(TipoComprobante.TIC_DESCRIPCION); } MOVIMIENTO_CTACTE_CLIENTE eMOV_CTA_CTE_CLI = new MOVIMIENTO_CTACTE_CLIENTE(); var cta_cliente = cCLIENTESES.ObtenerCtaCteCliente(Cliente); eMOV_CTA_CTE_CLI.TIPM_ID = eTIPO_MOVIMIENTO.TIPM_ID; eMOV_CTA_CTE_CLI.MCCC_VALORMOVIMIENTO = NuevaVta.VTA_TOTAL; eMOV_CTA_CTE_CLI.MCCC_CONCEPTO = Constantes.Debe; eMOV_CTA_CTE_CLI.MCCC_FECHAMOVIMIENTO = NuevaVta.VTA_FECHA; eMOV_CTA_CTE_CLI.MCCC_SALDOMOVIMIENTO = NuevaVta.VTA_TOTAL; eMOV_CTA_CTE_CLI.CCC_ID = cta_cliente.CCC_ID; eMOV_CTA_CTE_CLI.VTA_ID = NuevaVta.VTA_ID; cta_cliente.CCC_SALDO += NuevaVta.VTA_TOTAL; cCTACTE_CLIENTES.Modificacion(cta_cliente); cMOVIMIENTO_CTACTE_CLIENTES.Alta(eMOV_CTA_CTE_CLI); //actualizo la ficha eFicha = fichaAldiaDeHoy; eFicha.VTA_ID = NuevaVta.VTA_ID; eFicha.FIC_FECHACIERRE = DateTime.Now; eFicha.FIC_TOTAL = fichaAldiaDeHoy.FIC_TOTAL; eFicha.FIC_ESTADOAPERTURA = false; cFICHA.Modificacion(eFicha); //actualizo los detalle de la ficha foreach (var item in eFicha.DETALLES_FICHA) { if (item.PRODUCTO != null) // si no es una categoria { item.DETF_PRECIOCOSTO = item.PRODUCTO.PRO_COSTO; item.DETF_PRECIOUNIDAD = (item.PRODUCTO.PRO_ESTADOPROMO == true) ? (decimal)item.PRODUCTO.PRO_PRECIOPROMO : item.PRODUCTO.PRO_PRECIOVTA; item.DETF_ESTADOPROMO = item.PRODUCTO.PRO_ESTADOPROMO; item.DETF_PRECIOUNIDAD = item.PRODUCTO.PRO_PRECIOVTA; item.DETF_TOTAL = item.DETF_PRECIOUNIDAD * item.DETF_CANTIDAD; cDETALLE_FICHA.Modificacion(item); } } cVENTAS.Modificacion(NuevaVta); //TODO: sacar mensaje MostrarMensajeInformativo("La Ficha se realizó con éxito, a continuación se imprimira el Comprobante."); ImprimirReporteFicha(eFicha.FIC_ESTADOAPERTURA); TRANSACCION.Complete(); } ARMA_GRILLA_FICHA(); dgvGRILLA_DETALLE_FICHA.DataSource = null; } catch (Exception ex) { ProcesarExcepcion(ex); } }