public static ResAcc <int> GenerarPago(int iVentaID, decimal mImporte, int iFormaDePagoID, int iBancoID, string sFolio, string sCuenta) { // Se generan los datos del pago var oPago = new VentaPago() { VentaID = iVentaID, Fecha = DateTime.Now }; var oPagoDetalle = new List <VentaPagoDetalle>(); oPagoDetalle.Add(new VentaPagoDetalle() { TipoFormaPagoID = iFormaDePagoID, Importe = mImporte }); if (iBancoID > 0) { oPagoDetalle[0].BancoID = iBancoID; oPagoDetalle[0].Folio = sFolio; oPagoDetalle[0].Cuenta = sCuenta; } // Se guarda el pago Guardar.VentaPago(oPago, oPagoDetalle); return(new ResAcc <int>(true, oPago.VentaPagoID)); }
public static void Cancelar9500(int i9500ID, string sMotivo, int iUsuarioID) { var o9500 = Datos.GetEntity <Cotizacion9500>(q => q.Cotizacion9500ID == i9500ID && q.Estatus); var o9500Detalle = Datos.GetListOf <Cotizacion9500Detalle>(q => q.Cotizacion9500ID == i9500ID && q.Estatus); // Se verifica si se cobró el anticipo, para cancelarlo if (o9500.Anticipo > 0) { var oAnticipo = Datos.GetEntity <Venta>(c => c.VentaID == o9500.AnticipoVentaID && c.Estatus); if (oAnticipo.VentaEstatusID == Cat.VentasEstatus.Cobrada || oAnticipo.VentaEstatusID == Cat.VentasEstatus.Completada) { // Si se pagó, se genera una devolución var oVentaV = Datos.GetEntity <VentasView>(c => c.VentaID == o9500.AnticipoVentaID); if (oVentaV.Pagado > 0) { VentasProc.GenerarDevolucionDeEfectivo(oVentaV.VentaID, oVentaV.Pagado); } // Se cancela la venta del anticipo oAnticipo.VentaEstatusID = (oVentaV.Pagado > 0 ? Cat.VentasEstatus.Cancelada : Cat.VentasEstatus.CanceladaSinPago); Datos.Guardar <Venta>(oAnticipo); } } // Se borran las partes del 9500, si no han sido usadas foreach (var oParte in o9500Detalle) { // Se valida que la parte no haya sido usada en ventas if (Datos.Exists <VentaDetalle>(q => q.ParteID == oParte.ParteID)) { continue; } // Se valida que la parte no haya sido usada en almacén if (Datos.Exists <MovimientoInventarioDetalle>(q => q.ParteID == oParte.ParteID)) { continue; } // Se borra -> Deshabilitado hasta tener las validaciones del Almacén Guardar.EliminarParte(oParte.ParteID); } // Se verifica si hay autorizaciones, para borrarlas var oAuts = Datos.GetListOf <Autorizacion>(c => (c.AutorizacionProcesoID == Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango || c.AutorizacionProcesoID == Cat.AutorizacionesProcesos.c9500SinAnticipo) && c.Tabla == Cat.Tablas.Tabla9500 && c.TablaRegistroID == i9500ID && c.Estatus); foreach (var oReg in oAuts) { oReg.Estatus = true; Datos.Guardar <Autorizacion>(oReg); } // Se cancela el 9500 o9500.EstatusGenericoID = Cat.EstatusGenericos.CanceladoAntesDeVender; o9500.BajaUsuarioID = iUsuarioID; o9500.BajaMotivo = sMotivo; Datos.Guardar <Cotizacion9500>(o9500); }
public static void CopiarPartesComplementariasDeEquivalentes(int iParteID) { var oPartesEq = Datos.GetListOf <PartesEquivalentesView>(c => c.ParteID == iParteID); var oPartesCom = Datos.GetListOf <PartesComplementariasView>(c => c.ParteID == iParteID); foreach (var oParteEq in oPartesEq) { foreach (var oParteComp in oPartesCom) { Guardar.ParteComplementaria(oParteEq.ParteIDEquivalente, oParteComp.ParteIDComplementaria); // Se verifica si se debe guardar la forma inversa if (Datos.Exists <ParteComplementaria>(c => c.ParteID == oParteComp.ParteIDComplementaria && c.ParteIDComplementaria == iParteID)) { Guardar.ParteComplementaria(oParteComp.ParteIDComplementaria, oParteEq.ParteIDEquivalente); } } } }
public static ResAcc <int> GenerarPagoNegativoPorNotaDeCredito(int iVentaID, decimal mImporte, int iNotaDeCreditoID) { // Se generan los datos del pago var oPago = new VentaPago() { VentaID = iVentaID, // TipoPagoID = Cat.TiposDePago.Contado, Fecha = DateTime.Now }; var oPagoDetalle = new List <VentaPagoDetalle>(); oPagoDetalle.Add(new VentaPagoDetalle() { TipoFormaPagoID = Cat.FormasDePago.Vale, Importe = (mImporte * -1), NotaDeCreditoID = iNotaDeCreditoID }); // Se guarda el pago Guardar.VentaPago(oPago, oPagoDetalle); return(new ResAcc <int>(true, oPago.VentaPagoID)); }