Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
                    }
                }
            }
        }
Exemplo n.º 4
0
        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));
        }