예제 #1
0
파일: Guardar.cs 프로젝트: moisesiq/aupaga
        public static ResAcc VentaGarantia(VentaGarantia oGarantia)
        {
            // Se generan datos predeterminados o globales, en caso de que apliquen
            oGarantia.Fecha      = (oGarantia.Fecha != DateTime.MinValue ? oGarantia.Fecha : DateTime.Now);
            oGarantia.SucursalID = (oGarantia.SucursalID > 0 ? oGarantia.SucursalID : Theos.SucursalID);

            // Se guarda la devolución
            Datos.Guardar <VentaGarantia>(oGarantia);

            // Se afectan los datos en el detalle de la venta

            // Se quita el producto de la venta, si aplica
            if (oGarantia.AccionID != Cat.VentasGarantiasAcciones.RevisionDeProveedor)
            {
                var oParteVenta = Datos.GetEntity <VentaDetalle>(q => q.Estatus &&
                                                                 q.VentaID == oGarantia.VentaID &&
                                                                 q.ParteID == oGarantia.ParteID &&
                                                                 q.PrecioUnitario == oGarantia.PrecioUnitario &&
                                                                 q.Iva == oGarantia.Iva);
                if (oParteVenta.Cantidad > 1)
                {
                    oParteVenta.Cantidad--;
                    Datos.Guardar <VentaDetalle>(oParteVenta);
                }
                else
                {
                    Datos.Eliminar <VentaDetalle>(oParteVenta, true);
                }
            }

            return(new ResAcc(true));
        }
예제 #2
0
        public static void BorrarTemporal(string sProceso, int iId)
        {
            var oTemp = Datos.GetEntity <Temporal>(c => c.Proceso == sProceso && c.Identificador == iId);

            if (oTemp != null)
            {
                Datos.Eliminar <Temporal>(oTemp);
            }
        }
예제 #3
0
        public static void EliminarPagosVenta(int iVentaID)
        {
            var oPagos = Datos.GetListOf <VentaPago>(c => c.VentaID == iVentaID && c.Estatus);

            foreach (var oPago in oPagos)
            {
                var oPagoDet = Datos.GetListOf <VentaPagoDetalle>(c => c.VentaPagoID == oPago.VentaPagoID && c.Estatus);
                foreach (var oPagoForma in oPagoDet)
                {
                    Datos.Eliminar <VentaPagoDetalle>(oPagoForma, true);
                }
                Datos.Eliminar <VentaPago>(oPago, true);
            }
        }
예제 #4
0
        public static void EliminarVenta(int iVentaID)
        {
            var oVenta = Datos.GetEntity <Venta>(q => q.VentaID == iVentaID && q.Estatus);

            // De momento sólo están contempladas las ventas que sólo han sido registradas. No cobradas, pagadas, canceladas
            if (oVenta.VentaEstatusID != Cat.VentasEstatus.Realizada)
            {
                return;
            }

            var oVentaDet = Datos.GetListOf <VentaDetalle>(q => q.VentaID == oVenta.VentaID && q.Estatus);

            // Se regresa la existencia y se borra el detalle de la venta
            foreach (var oParteDet in oVentaDet)
            {
                AdmonProc.AgregarExistencia(oParteDet.ParteID, oVenta.SucursalID, oParteDet.Cantidad, Cat.Tablas.Venta, iVentaID);
                Datos.Eliminar <VentaDetalle>(oParteDet, true);
            }
            // Se borra la venta en sí
            Datos.Eliminar <Venta>(oVenta, true);

            // Se borran los datos del kardex
            var oPartesKardex = Datos.GetListOf <ParteKardex>(c => c.OperacionID == Cat.OperacionesKardex.Venta && c.RelacionTabla == Cat.Tablas.Venta &&
                                                              c.RelacionID == iVentaID);

            foreach (var oReg in oVentaDet)
            {
                var oKardex = oPartesKardex.FirstOrDefault(c => c.ParteID == oReg.ParteID);
                if (oKardex == null)
                {
                    continue;
                }
                Datos.Eliminar <ParteKardex>(oKardex);
                // Se verifica si hubo algún otro movimiento en kardex de la misma parte, para hacer el reajuste
                var oDespues = Datos.GetListOf <ParteKardex>(c => c.ParteKardexID > oKardex.ParteKardexID && c.ParteID == oKardex.ParteID);
                foreach (var oRegD in oDespues)
                {
                    oRegD.ExistenciaNueva += (oKardex.Cantidad * -1);
                    Datos.Guardar <ParteKardex>(oRegD);
                }
            }
        }
예제 #5
0
파일: Guardar.cs 프로젝트: moisesiq/aupaga
        public static ResAcc EliminarParte(int iParteID)
        {
            // Se borran los registros MaxMin
            var oMaxMins = Datos.GetListOf <ParteMaxMin>(q => q.ParteID == iParteID);

            foreach (var oParteMM in oMaxMins)
            {
                Datos.Eliminar <ParteMaxMin>(oParteMM, false);
            }

            // Se borran los registros de existencias
            var oExistencias = Datos.GetListOf <ParteExistencia>(q => q.ParteID == iParteID && q.Estatus);

            foreach (var oParteEx in oExistencias)
            {
                Datos.Eliminar <ParteExistencia>(oParteEx, true);
            }

            // Se borran los datos del precio
            var oPartePrecio = Datos.GetEntity <PartePrecio>(q => q.ParteID == iParteID && q.Estatus);

            if (oPartePrecio != null)
            {
                Datos.Eliminar <PartePrecio>(oPartePrecio, true);
            }

            // Se borra el registro de la parte
            var oParte = Datos.GetEntity <Parte>(q => q.ParteID == iParteID && q.Estatus);

            if (oParte != null)
            {
                Datos.Eliminar <Parte>(oParte, true);
            }

            return(new ResAcc(true));
        }
예제 #6
0
파일: Datos.cs 프로젝트: moisesiq/aupaga
 public static ResAcc Eliminar <T>(T oObjeto) where T : EntityObject
 {
     return(Datos.Eliminar <T>(oObjeto, false));
 }