public static Response<Ingreso> Post(this Ingreso request, Factory factory, IAuthSession authSession) { request.ValidateAndThrowHttpError(Operaciones.Create); var idUsuario = int.Parse(authSession.UserAuthId); request.Periodo= request.Fecha.ObtenerPeriodo(); factory.Execute(proxy=>{ var sucursal=request.CheckSucursal(proxy,idUsuario); var tercero=request.CheckTercero(proxy); request.CheckCodigoDocumento(proxy); request.CheckPeriodo(proxy); request.NombreSucursal=sucursal.Nombre; request.NombreTercero=tercero.Nombre; request.DocumentoTercero= tercero.Documento; request.NombreDocumentoTercero= tercero.NombreDocumento; request.DVTercero= tercero.DigitoVerificacion; using (proxy.AcquireLock(request.GetLockKeyConsecutivo(), Definiciones.LockSeconds)) { proxy.BeginDbTransaction(); request.AsignarConsecutivo(proxy); request.AsignarDocumento(proxy); request.Create(proxy); proxy.CommitDbTransaction(); } }); List<Ingreso> data = new List<Ingreso>(); data.Add(request); return new Response<Ingreso>(){ Data=data }; }
public static Response<Egreso> Post(this Egreso request, Factory factory, IAuthSession authSession) { request.ValidateAndThrowHttpError(Operaciones.Create); var idUsuario = int.Parse(authSession.UserAuthId); request.Periodo= request.Fecha.ObtenerPeriodo(); if(request.IdTerceroReceptor.HasValue && request.IdTerceroReceptor.Value==default(int)) request.IdTerceroReceptor=null; factory.Execute(proxy=>{ var sucursal=request.CheckSucursal(proxy,idUsuario); var tercero=request.CheckTercero(proxy); Tercero tr= default(Tercero); if(request.IdTerceroReceptor.HasValue) { if(request.IdTerceroReceptor!=request.IdTercero) tr= request.CheckTerceroReceptor(proxy); else tr= tercero; } request.CheckCodigoDocumento(proxy); request.CheckPeriodo(proxy); request.NombreSucursal=sucursal.Nombre; request.NombreTercero=tercero.Nombre; request.DocumentoTercero= tercero.Documento; request.NombreDocumentoTercero= tercero.NombreDocumento; request.DVTercero= tercero.DigitoVerificacion; if(tr!=default(Tercero)) { request.DocumentoReceptor= tr.Documento; request.NombreDocumentoReceptor= tr.NombreDocumento; request.NombreReceptor=tr.Nombre; request.DVReceptor= tr.DigitoVerificacion; } using (proxy.AcquireLock(request.GetLockKeyConsecutivo(), Definiciones.LockSeconds)) { // TODO : Revisar documento si es vacio y CC traer numero de Tercero proxy.BeginDbTransaction(); request.AsignarConsecutivo(proxy); request.Create(proxy); proxy.CommitDbTransaction(); } }); List<Egreso> data = new List<Egreso>(); data.Add(request); return new Response<Egreso>(){ Data=data }; }