public static ComprobanteEgreso CreateComprobanteEgreso(DALProxy proxy, int idSucursal, int idCuentaGiradora, int idTercero, decimal valor, string descripcion, int? idTerceroReceptor=null, DateTime? fechaAsentado=null, bool? externo=false) { var today= DateTime.Today; var periodo= today.Year.ToString() + today.Month.ToString().PadLeft(2,'0'); ComprobanteEgreso ce = new ComprobanteEgreso(){ IdSucursal=idSucursal, IdCuentaGiradora= idCuentaGiradora, Fecha=today, Periodo= periodo, IdTercero=idTercero, Valor=valor, Descripcion=descripcion, IdTerceroReceptor= idTerceroReceptor.HasValue? idTerceroReceptor.Value: idTercero, FechaAsentado= fechaAsentado.HasValue?fechaAsentado.Value:fechaAsentado, //UTC ? Externo= externo.HasValue?externo.Value:false }; ce.Numero=proxy.GetNextConsecutivo(idSucursal, Definiciones.ComprobranteEgreso).Numero; proxy.Create(ce); return ce; }
public static void Asentar(this Egreso egreso,DALProxy proxy){ egreso.FechaAsentado=DateTime.Today; var visitor = ReadExtensions.CreateExpression<Egreso>(); visitor.Update( f=> new { f.FechaAsentado }); visitor.Where(r=>r.Id==egreso.Id); proxy.Update(egreso, visitor); }
public static void Reversar(this Ingreso ingreso, DALProxy proxy){ ingreso.FechaAsentado=null; var visitor = ReadExtensions.CreateExpression<Ingreso>(); visitor.Update( f=> new { f.FechaAsentado }); visitor.Where(r=>r.Id==ingreso.Id); proxy.Update(ingreso, visitor); }
public static T CheckExistAndActivo <T>(this DALProxy proxy, int id, Expression <Func <T, object> > field) where T : IHasActivo, new() { if (id == default(int)) { throw HttpError.Unauthorized(string.Format("Debe Indicar el Id para: '{0}", typeof(T).Name)); } var record = proxy.FirstOrDefault <T>(q => q.Id == id); if (record == null) { throw HttpError.NotFound(string.Format("No existe '{0}' con Id: '{1}'", typeof(T).Name, id)); } if (!record.Activo) { object fieldValue = GetValue <T>(record, field); throw HttpError.Unauthorized(string.Format("Registro Inactivo '{0} :'{1}-{2}'", typeof(T).Name, id, fieldValue)); } return(record); }
public static void Anular(this Ingreso ingreso,DALProxy proxy){ ingreso.FechaAnulado=DateTime.Today; var visitor = ReadExtensions.CreateExpression<Ingreso>(); visitor.Update( f=> new { f.FechaAnulado }); visitor.Where(r=>r.Id==ingreso.Id); proxy.Update(ingreso, visitor); }
public static void Update(this MayorPresupuesto item, DALProxy proxy, string periodo, short tipoPartida, decimal valor) { item.UpdateSaldos(periodo, tipoPartida==1?valor:0, tipoPartida==2? valor:0); SqlExpressionVisitor<MayorPresupuesto> expression = ReadExtensions.CreateExpression<MayorPresupuesto>(); //expression.Where(r=>r.Id==item.Id); proxy.Update<MayorPresupuesto>(item,periodo.Substring(0,4),expression); }
public static MayorPresupuesto GetMayorPresupuesto(DALProxy proxy, string periodo, int idPresupuestoItem, int? idTercero=null) { var visitor= ReadExtensions.CreateExpression<MayorPresupuesto>(); if(idTercero.HasValue) visitor.Where(r=>r.IdPresupuestoItem== idPresupuestoItem && r.IdTercero ==idTercero.Value); else visitor.Where(r=>r.IdPresupuestoItem== idPresupuestoItem && r.IdTercero==null); return proxy.FirstOrDefault(periodo.Substring(0,4), visitor); }
public static void Actualizar(this ComprobanteEgreso documento,DALProxy proxy){ var visitor = ReadExtensions.CreateExpression<ComprobanteEgreso>(); visitor.Update( f=> new { f.Descripcion,f.Fecha,f.Periodo,f.IdTercero,f.IdTerceroReceptor, f.IdCuentaGiradora}); visitor.Where(q=>q.Id==documento.Id); proxy.Update(documento,visitor); }
public static Egreso GetEgresoById( DALProxy proxy, int idEgreso, bool excludeJoin=true) { var visitor = ReadExtensions.CreateExpression<Egreso>(); visitor.ExcludeJoin=excludeJoin; visitor.Where(q=>q.Id==idEgreso); return proxy.FirstOrDefault(visitor); }
public static void Create(this ComprobanteEgreso comprobante, DALProxy proxy) { var visitor = ReadExtensions.CreateExpression<ComprobanteEgreso>(); visitor.Insert( f=> new { f.Id, f.Descripcion, f.Fecha, f.Periodo, f.IdSucursal,f.Numero,f.IdTercero,f.IdTerceroReceptor, f.IdCuentaGiradora }); proxy.Create(comprobante, visitor); }
public static void UpdateDbCr(this PresupuestoItem presupuestoItem, DALProxy proxy, short tipoPartida, decimal valor ) { presupuestoItem.Update(tipoPartida==1?valor:0, tipoPartida==2? valor:0); SqlExpressionVisitor<PresupuestoItem> expression= ReadExtensions.CreateExpression<PresupuestoItem>(); expression.Where(r=> r.Id== presupuestoItem.Id); expression.Update(r=> new{r.Debitos, r.Creditos}); proxy.Update(presupuestoItem, expression); }
public static void UpdatePresupuesto(this PresupuestoItem presupuestoItem, DALProxy proxy, int idSucursal, int idCentro, string periodo, short tipoPartida, decimal valor, int? idTercero) { using(proxy.AcquireLock(MayorPresupuesto.GetLockKey(presupuestoItem.Id, idTercero),Definiciones.LockSeconds)) { var pm= DAL.GetMayorPresupuesto(proxy, periodo,presupuestoItem.Id, idTercero); if(pm==default(MayorPresupuesto)) { pm= new MayorPresupuesto(){ IdPresupuestoItem=presupuestoItem.Id, IdSucursal=idSucursal, IdCentro=idCentro, IdTercero=idTercero }; } if(pm.Id==default(int)) { pm.Insert(proxy,periodo,tipoPartida, valor); } else { pm.Update(proxy,periodo,tipoPartida, valor); } } if(presupuestoItem.UsaTercero) { using(proxy.AcquireLock(SaldoTercero.GetLockKey(presupuestoItem.Id, idTercero.Value),Definiciones.LockSeconds)) { SaldoTercero st = proxy.FirstOrDefault<SaldoTercero>(q=> q.IdPresupuestoItem==presupuestoItem.Id && q.IdTercero== idTercero.Value); if(st==default(SaldoTercero)) { st= new SaldoTercero{ IdPresupuestoItem=presupuestoItem.Id, IdSucursal=idSucursal, IdTercero=idTercero.Value }; } st.UpdateDbCr(tipoPartida==1?valor:0, tipoPartida==2?valor:0); if(st.Id==default(int)) proxy.Create(st); else proxy.Update(st); } } presupuestoItem.UpdateDbCr(proxy, tipoPartida, valor); }
public static UsuarioGiradora GetUsuarioGiradora(DALProxy proxy, int idUsuario, int idPresupuestoItem, int?idTercero) { if(idTercero.HasValue) return proxy.FirstOrDefault<UsuarioGiradora>(x=>x.IdUsuario== idUsuario && x.IdPresupuestoItem== idPresupuestoItem && x.IdTercero==idTercero.Value); else return proxy.FirstOrDefault<UsuarioGiradora>(x=>x.IdUsuario== idUsuario && x.IdPresupuestoItem== idPresupuestoItem ); }
public static void Anular(this ComprobanteIngreso comprobanteIngreso, DALProxy proxy, string descripcion) { comprobanteIngreso.FechaAnulado= DateTime.Today; comprobanteIngreso.Descripcion= descripcion.IsNullOrEmpty()?"Anulado":descripcion; comprobanteIngreso.Valor=0; proxy.Execute(dbCmd=>{ proxy.Delete<ComprobanteIngresoItem>(r=>r.IdComprobanteIngreso==comprobanteIngreso.Id); proxy.Update(comprobanteIngreso, ev=> ev.Update(f=>new {f.FechaAnulado, f.Descripcion,f.Valor}). Where(q=>q.Id==comprobanteIngreso.Id )); }); }
public static ComprobanteEgresoItem CreateItem(this ComprobanteEgreso comprobanteEgreso, DALProxy proxy, int idEgreso, decimal valor) { ComprobanteEgresoItem cei= new ComprobanteEgresoItem(){ IdEgreso= idEgreso, Abono= valor, IdComprobanteEgreso= comprobanteEgreso.Id }; proxy.Create(cei); return cei; }
static Ciudad CheckCiudad(DALProxy proxy, Pedido request) { if (request.IdCiudadDestinatario == 0) { throw HttpError.Unauthorized("Debe Indicar la ciudad Destino"); } var ciudad = proxy.FirstOrDefaultById <Ciudad>(request.IdCiudadDestinatario); if (ciudad == default(Ciudad)) { throw HttpError.NotFound(string.Format("No existe Ciudad con Id: '{0}'", request.IdCiudadDestinatario)); } return(ciudad); }
public static void CheckUsuarioGiradora(this PresupuestoItem presupuestoItem, DALProxy proxy, int idUsuario, int? idTercero) { if(presupuestoItem.Codigo.StartsWith(Definiciones.GrupoCajaBancos)) { var usuarioGiradora = DAL.GetUsuarioGiradora(proxy, idUsuario, presupuestoItem.Id, idTercero); if(usuarioGiradora==default(UsuarioGiradora)) throw new HttpError( string.Format("No existe Cuenta Giradora autorizada para IdUsuario:'{0}' Codigo:'{1}' idTercero:{2}", idUsuario, presupuestoItem.Codigo, idTercero.HasValue? idTercero.Value: 0)); } }
static Ciudad CheckCiudad(DALProxy proxy, Pedido request) { if(request.IdCiudadDestinatario==0) throw HttpError.Unauthorized("Debe Indicar la ciudad Destino"); var ciudad = proxy.FirstOrDefaultById<Ciudad>(request.IdCiudadDestinatario); if(ciudad==default(Ciudad)) throw HttpError.NotFound(string.Format("No existe Ciudad con Id: '{0}'", request.IdCiudadDestinatario)); return ciudad; }
public static void Anular(this ComprobanteEgreso comprobanteEgreso, DALProxy proxy, string descripcion) { comprobanteEgreso.FechaAnulado= DateTime.Today; comprobanteEgreso.Descripcion= descripcion.IsNullOrEmpty()?"Anulado":descripcion; comprobanteEgreso.Valor=0; proxy.Execute(dbCmd=>{ proxy.Delete<ComprobanteEgresoItem>(r=>r.IdComprobanteEgreso==comprobanteEgreso.Id); var visitor = ReadExtensions.CreateExpression<ComprobanteEgreso>(); visitor.Update(r=> new {r.FechaAnulado, r.Descripcion,r.Valor}); visitor.Where(r=> r.Id==comprobanteEgreso.Id ); proxy.Update(comprobanteEgreso,visitor); }); }
static void CheckBeforePatch(ComprobanteEgreso oldData, ComprobanteEgreso request, DALProxy proxy, int idUsuario, string operacion) { oldData.ValidateAndThrowHttpError(operacion); CEs ces= new CEs(){Nuevo=request, Viejo=oldData}; CEsValidator ev = new CEsValidator(); ev.ValidateAndThrowHttpError(ces,operacion); oldData.CheckSucursal(proxy,idUsuario); oldData.CheckPeriodo(proxy); request.PopulateWith(oldData); }
static PresupuestoItem CheckUsuarioGiradora(this ComprobanteEgreso documento, DALProxy proxy, int idUsuario) { PresupuestoItem pi = DAL.GetPresupuestoItem(proxy, documento.IdCuentaGiradora); pi.AssertExists(documento.IdCuentaGiradora); PresupuestoItemValidador piv= new PresupuestoItemValidador(); piv.ValidateAndThrowHttpError(pi, Definiciones.PrspItemActivo); if(!pi.UsaTercero) documento.IdTerceroGiradora=null; pi.CheckUsuarioGiradora(proxy,idUsuario, documento.IdTerceroGiradora); return pi; }
private static void CheckOldAndNew(ComprobanteEgreso oldData, ComprobanteEgreso request, DALProxy proxy, int idUsuario) { oldData.ValidateAndThrowHttpError(Operaciones.Update); CEs ces= new CEs(){Nuevo=request, Viejo=oldData}; CEsValidator ev = new CEsValidator(); ev.ValidateAndThrowHttpError(ces,Operaciones.Update); oldData.CheckSucursal(proxy, idUsuario); var data = new ComprobanteEgreso(); data.PopulateWith(oldData); if( request.Fecha!=default(DateTime) && request.Fecha!=data.Fecha) { data.Fecha=request.Fecha; data.Periodo= data.Fecha.ObtenerPeriodo(); } data.CheckPeriodo(proxy); //if(request.IdTercero!=default(int) && request.IdTercero!=data.IdTercero) //{ // data.IdTercero=request.IdTercero; // data.CheckTercero(proxy); //} if(request.IdTerceroReceptor!=default(int) && request.IdTerceroReceptor!=data.IdTerceroReceptor ) { data.IdTerceroReceptor=request.IdTerceroReceptor; var tr= data.CheckTerceroReceptor(proxy); data.DocumentoReceptor= tr.Documento; data.NombreDocumentoReceptor= tr.NombreDocumento; data.NombreReceptor=tr.Nombre; data.DVReceptor= tr.DigitoVerificacion; } if(!request.Descripcion.IsNullOrEmpty() && request.Descripcion!=data.Descripcion) data.Descripcion=request.Descripcion; bool checkcg=false; if(request.IdCuentaGiradora!=default(int) && request.IdCuentaGiradora!=data.IdCuentaGiradora) { data.IdCuentaGiradora= request.IdCuentaGiradora; checkcg=true; } if((request.IdTerceroGiradora.HasValue && request.IdTerceroGiradora.Value!=default(int)) && ( !data.IdTerceroGiradora.HasValue || (data.IdTerceroGiradora.HasValue && request.IdTerceroGiradora.Value!=data.IdTerceroGiradora.Value))) { data.IdTerceroGiradora= request.IdTerceroGiradora; checkcg=true; } if(checkcg){ var pi = data.CheckUsuarioGiradora(proxy, idUsuario); data.CodigoItem= pi.Codigo; data.NombreItem = pi.Nombre; } request.PopulateWith(data); }
static Tercero CheckTerceroReceptor(this ComprobanteEgreso request, DALProxy proxy) { Tercero t = proxy.FirstOrDefaultByIdFromCache<Tercero>(request.IdTerceroReceptor); t.AssertExists(request.IdTerceroReceptor); return t; }
public static void Create(this Ingreso request, DALProxy proxy) { var visitor = ReadExtensions.CreateExpression<Ingreso>(); visitor.Insert( f=> new { f.Id, f.Descripcion, f.Fecha, f.Periodo, f.IdSucursal,f.Numero,f.CodigoDocumento,f.Documento, f.IdTercero, f.DiasCredito }); proxy.Create(request,visitor); }
static void CheckBeforePatch(Ingreso oldData, Ingreso request, DALProxy proxy, int idUsuario, string operacion) { oldData.ValidateAndThrowHttpError(operacion); Ingresos egresos= new Ingresos(){Nuevo=request, Viejo=oldData}; IngresosValidator ev = new IngresosValidator(); ev.ValidateAndThrowHttpError(egresos,operacion); oldData.CheckSucursal(proxy,idUsuario); oldData.CheckPeriodo(proxy); request.PopulateWith(oldData); }
static void CheckOldAndNew(Ingreso oldData, Ingreso request, DALProxy proxy, int idUsuario) { oldData.ValidateAndThrowHttpError(Operaciones.Update); Ingresos egresos= new Ingresos(){Nuevo=request, Viejo=oldData}; IngresosValidator ev = new IngresosValidator(); ev.ValidateAndThrowHttpError(egresos,Operaciones.Update); oldData.CheckSucursal(proxy, idUsuario); var data = new Ingreso(); data.PopulateWith(oldData); if( request.Fecha!=default(DateTime) && request.Fecha!=data.Fecha) { data.Fecha=request.Fecha; data.Periodo= data.Fecha.ObtenerPeriodo(); } data.CheckPeriodo(proxy); if(request.IdTercero!=default(int) && request.IdTercero!=data.IdTercero) { data.IdTercero=request.IdTercero; var tercero=data.CheckTercero(proxy); data.NombreDocumentoTercero=tercero.NombreDocumento; data.NombreTercero=tercero.Nombre; data.DocumentoTercero=tercero.Documento; data.DVTercero= tercero.DigitoVerificacion; } if(!request.Descripcion.IsNullOrEmpty() && request.Descripcion!=data.Descripcion) data.Descripcion=request.Descripcion; if(request.DiasCredito!=data.DiasCredito) data.DiasCredito=request.DiasCredito; request.PopulateWith(data); }
public static void ActualizarValorSaldo(this Ingreso ingreso,DALProxy proxy){ var visitor = ReadExtensions.CreateExpression<Ingreso>(); visitor.Update( f=> new { f.Valor, f.Saldo }); visitor.Where(r=>r.Id==ingreso.Id); proxy.Update(ingreso, visitor); }
static void CheckOldAndNew(this ComprobanteIngresoItem request, ComprobanteIngresoItem oldData, DALProxy proxy ) { ComprobanteIngresoItem data = new ComprobanteIngresoItem(); data.PopulateWith(oldData); if(request.Abono!=default(decimal) && request.Abono!=data.Abono) data.Abono=request.Abono; request.PopulateWith(data); }
public static void Update(this Ingreso ingreso,DALProxy proxy){ var visitor = ReadExtensions.CreateExpression<Ingreso>(); visitor.Update( f=> new { f.Descripcion,f.Fecha,f.Periodo,f.IdTercero,f.CodigoDocumento,f.DiasCredito}); visitor.Where(r=>r.Id==ingreso.Id); proxy.Execute(dbCmd=> dbCmd.UpdateOnly(ingreso, visitor)); }
public static void AsignarDocumento(this Ingreso request, DALProxy proxy) { var numero =proxy.GetNextConsecutivo(request.IdSucursal,request.CodigoDocumento).Numero; request.Documento= numero.ToString().PadLeft(5,'0'); }
public static void AsignarConsecutivo(this Ingreso request, DALProxy proxy) { request.Numero= proxy.GetNextConsecutivo(request.IdSucursal,Definiciones.Ingreso).Numero; }
static PresupuestoItem CheckPresupuestoItem(this ComprobanteEgresoRetencion item, DALProxy proxy) { PresupuestoItem pi = DAL.GetPresupuestoItem(proxy, item.IdPresupuestoItem); pi.AssertExists(item.IdPresupuestoItem); return pi; }