public static void RegistrarKardex(ParteKardex oParteKardex) { oParteKardex.Folio = (oParteKardex.Folio == null ? "" : oParteKardex.Folio); // Se verifica si la parte es servicio, para no afectar la existencia nueva if (Datos.Exists <Parte>(c => c.ParteID == oParteKardex.ParteID && c.EsServicio.Value && c.Estatus)) { oParteKardex.Cantidad = 0; } // Se calcula la existencia nueva var oParteKardexAnt = Datos.GetListOf <ParteKardex>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID) .OrderByDescending(c => c.ParteKardexID).FirstOrDefault(); decimal mExistencia = (oParteKardexAnt == null ? 0 : oParteKardexAnt.ExistenciaNueva); decimal mCantidad = oParteKardex.Cantidad; if (oParteKardex.OperacionID == Cat.OperacionesKardex.Venta || oParteKardex.OperacionID == Cat.OperacionesKardex.DevolucionAProveedor || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaInventario || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaTraspaso) { mCantidad *= -1; } oParteKardex.ExistenciaNueva = (mExistencia + mCantidad); Datos.Guardar <ParteKardex>(oParteKardex); }
public static void Completar9500(Cotizacion9500 o9500, decimal mSobrante, bool bDevolverEfectivo) { // Se cancela la venta del anticipo var oVentaAnt = Datos.GetEntity <Venta>(q => q.VentaID == o9500.AnticipoVentaID && q.VentaEstatusID != Cat.VentasEstatus.Cancelada && q.VentaEstatusID != Cat.VentasEstatus.CanceladaSinPago && q.Estatus); if (oVentaAnt != null) { oVentaAnt.VentaEstatusID = Cat.VentasEstatus.Cancelada; Datos.Guardar <Venta>(oVentaAnt); // Se genera una devolución de efectivo (si se realizó un pago) de la venta cancelada, pues se generará una nueva venta con el importe total if (Datos.Exists <VentaPago>(q => q.VentaID == o9500.AnticipoVentaID && q.Estatus)) { VentasProc.GenerarDevolucionDeEfectivo(o9500.AnticipoVentaID.Valor(), o9500.Anticipo - (mSobrante > 0 ? mSobrante : 0)); } } // Si hubo un sobrante, se genera nota de crédito o se devuelve efectivo if (mSobrante > 0) { if (bDevolverEfectivo) { VentasProc.GenerarDevolucionDeEfectivo(oVentaAnt.VentaID, mSobrante); } else { VentasProc.GenerarNotaDeCredito(o9500.ClienteID, mSobrante, "", Cat.OrigenesNotaDeCredito.Anticipo9500, oVentaAnt.VentaID); } } // Se modifica el Estatus del 9500 o9500.EstatusGenericoID = Cat.EstatusGenericos.Completada; Datos.Guardar <Cotizacion9500>(o9500); }
public static void RegistrarKardex(ParteKardex oParteKardex) { oParteKardex.Folio = (oParteKardex.Folio == null ? "" : oParteKardex.Folio); // Se verifica si la parte es servicio, para no afectar la existencia nueva if (Datos.Exists <Parte>(c => c.ParteID == oParteKardex.ParteID && c.EsServicio.Value && c.Estatus)) { oParteKardex.Cantidad = 0; } // Se calcula la existencia nueva var oParteKardexAnt = Datos.GetListOf <ParteKardex>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID) .OrderByDescending(c => c.ParteKardexID).FirstOrDefault(); decimal mExistencia = (oParteKardexAnt == null ? 0 : oParteKardexAnt.ExistenciaNueva); decimal mCantidad = oParteKardex.Cantidad; /* if (oParteKardex.OperacionID == Cat.OperacionesKardex.Venta || oParteKardex.OperacionID == Cat.OperacionesKardex.DevolucionAProveedor || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaInventario || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaTraspaso) || mCantidad *= -1; */ oParteKardex.ExistenciaNueva = (mExistencia + mCantidad); Datos.Guardar <ParteKardex>(oParteKardex); // Se valida la última entrada del kárdex con la existencia /* * var oParteEx = General.GetEntity<ParteExistencia>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID && c.Estatus); * if (oParteKardex.ExistenciaNueva != oParteEx.Existencia) * UtilLocal.MensajeError(string.Format("Hay una diferencia entre la existencia del Kárdex y la existencia del sistema. ¡Verificar!" + "\n\nExistencia Kárdex: {0}\nExistencia Sistema: {1}", oParteKardex.ExistenciaNueva, oParteEx.Existencia)); */ }
public static void CopiarCodigosAlternosDeEquivalentes(int iParteID) { var oPartesEq = Datos.GetListOf <PartesEquivalentesView>(c => c.ParteID == iParteID); var oCodigosAlt = Datos.GetListOf <ParteCodigoAlterno>(c => c.ParteID == iParteID); foreach (var oParteEq in oPartesEq) { foreach (var oCodigoAlt in oCodigosAlt) { if (Datos.Exists <ParteCodigoAlterno>(c => c.ParteID == oParteEq.ParteIDEquivalente && c.MarcaParteID == oCodigoAlt.MarcaParteID && c.CodigoAlterno == oCodigoAlt.CodigoAlterno)) { continue; } var oCodigoAltNuevo = new ParteCodigoAlterno() { ParteID = oParteEq.ParteIDEquivalente, MarcaParteID = oCodigoAlt.MarcaParteID, CodigoAlterno = oCodigoAlt.CodigoAlterno, RealizoUsuarioID = Theos.UsuarioID }; Datos.Guardar <ParteCodigoAlterno>(oCodigoAltNuevo); } } }
public static ResAcc ValidarPermiso(int iUsuarioID, string sPermiso) { var oUsuarioPerV = Datos.GetEntity <UsuariosPermisosView>(c => c.UsuarioID == iUsuarioID && c.Permiso == sPermiso); bool bValido = Datos.Exists <UsuariosPermisosView>(c => c.UsuarioID == iUsuarioID && c.Permiso == sPermiso); if (bValido) { return(new ResAcc(true)); } else { var oRes = new ResAcc(false); var oPermiso = Datos.GetEntity <Permiso>(c => c.NombrePermiso == sPermiso && c.Estatus); if (oPermiso == null) { oRes.Mensaje = "El Permiso especificado ni siquiera existe. ¡Échame la mano!"; } else { oRes.Mensaje = oPermiso.MensajeDeError; } return(oRes); } }
public static bool VerGuardar9500(int iParteID) { var oParte = Datos.GetEntity <Parte>(c => c.ParteID == iParteID && c.Estatus); oParte.Es9500 = !Datos.Exists <ParteMaxMin>(c => c.ParteID == iParteID && c.Maximo > 0); Datos.Guardar <Parte>(oParte); return(oParte.Es9500.Valor()); }
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 bool EsFacturaMultiple(int iVentaID) { var oVentaFaDe = Datos.GetEntity <VentaFacturaDetalle>(c => c.VentaID == iVentaID && c.Estatus); if (oVentaFaDe == null) { return(false); } else { return(Datos.Exists <VentasFacturasView>(c => c.VentaFacturaID == oVentaFaDe.VentaFacturaID && c.Ventas > 1)); } }
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 void AgregarExistencia(int iParteID, int iSucursalID, decimal mAgregar, string sTabla, int iId) { // var oParte = General.GetEntity<Parte>(q => q.ParteID == iParteID && q.Estatus); // if (!oParte.EsServicio.Valor()) if (Datos.Exists <Parte>(c => c.ParteID == iParteID && (!c.EsServicio.HasValue || !c.EsServicio.Value) && c.Estatus)) { var oParteEx = Datos.GetEntity <ParteExistencia>(q => q.SucursalID == iSucursalID && q.ParteID == iParteID && q.Estatus); oParteEx.Existencia += mAgregar; Datos.Guardar <ParteExistencia>(oParteEx); // Se registra el histórico de la existencia var oExHis = new ParteExistenciaHistorico() { ParteID = iParteID, Cantidad = mAgregar, ExistenciaNueva = oParteEx.Existencia.Valor(), RelacionTabla = sTabla, RelacionID = iId }; Datos.Guardar <ParteExistenciaHistorico>(oExHis); } }