public Comprobante(IRepositoryContext repositoryContext, IComprobanteDetalle detalle, IPartidas partida, IUsuarioArea usuarioArea) : base(repositoryContext) { cdService = detalle ?? new ComprobanteDetalle(); parService = partida ?? new Partidas(); usuarioAreaService = usuarioArea ?? new UsuarioArea(); parametroService = parametroService ?? new Parametro(); partidasService = partidasService ?? new Partidas(); }
public Comprobante(IRepositoryContext repositoryContext) : base(repositoryContext) { cdService = cdService ?? new ComprobanteDetalle(); parService = parService ?? new Partidas(); usuarioAreaService = usuarioAreaService ?? new UsuarioArea(); parametroService = parametroService ?? new Parametro(); partidasService = partidasService ?? new Partidas(); usuarioEmpresaService = usuarioEmpresaService ?? new UsuarioEmpresa(); empresaService = empresaService ?? new Empresa(); }
public bool AprobarRegistro(int registro, string userName, List <string> empresas) { try { List <string> empresasFaltantes = new List <string>(); var control = base.GetSingle(c => c.RC_REGISTRO_CONTROL == registro); if (control == null || control.SAX_PARTIDAS.Count == 0) { throw new Exception("Registro control no es valido o no se cuenta con partidas asociadas."); } if (!this.usuarioEmpresaValidateCarga(control.SAX_PARTIDAS.ToList(), empresas, ref empresasFaltantes)) { throw new Exception($"No puede aprobar esta carga, ya que su usuario no maneja las empresas que contiene la carga que desea aprobar ({ String.Join(", ", empresasFaltantes.ToArray())})"); } var partidas = control.SAX_PARTIDAS; var cloneReg = control.CloneEntity(); cloneReg.RC_ESTATUS_LOTE = Convert.ToInt16(BusinessEnumerations.EstatusCarga.APROBADO); cloneReg.RC_USUARIO_APROBADOR = userName; cloneReg.RC_FECHA_APROBACION = DateTime.Now; using (var trx = new TransactionScope()) { using (var db = new DBModelEntities()) { db.Database.CommandTimeout = 200000; db.Configuration.LazyLoadingEnabled = false; base.Update(control, cloneReg); partidas = ReferenceAsign(control.RC_COD_OPERACION, partidas, userName, partidas.FirstOrDefault().RC_REGISTRO_CONTROL); EFBatchOperation.For(db, db.SAX_PARTIDAS).UpdateAll(partidas, x => x.ColumnsToUpdate(y => y.PA_FECHA_APROB, z => z.PA_USUARIO_APROB, t => t.PA_STATUS_PARTIDA, u => u.PA_REFERENCIA), null, 1500); } trx.Complete(); } } catch (Exception ex) { throw ex; } return(true); }
public RegistroControl(IPartidas ipartidas) { partidas = ipartidas; }
private ICollection <SAX_PARTIDAS> ReferenceAsign(int tipoOperacion, ICollection <SAX_PARTIDAS> partidasList, string userName, int idPartida) { string codeOperacion = string.Empty; CuentaContable cuentas = new CuentaContable(); Empresa emp = new Empresa(); AreaOperativa area = new AreaOperativa(); RegistroControl regCtrl = new RegistroControl(); if (tipoOperacion == Convert.ToInt16(BusinessEnumerations.TipoOperacion.CARGA_INICIAL)) { codeOperacion = "I"; } else if (tipoOperacion == Convert.ToInt16(BusinessEnumerations.TipoOperacion.CARGA_MASIVA)) { codeOperacion = "D"; } else if (tipoOperacion == Convert.ToInt16(BusinessEnumerations.TipoOperacion.CAPTURA_MANUAL)) { codeOperacion = "M"; } DateTime todays = DateTime.Now.Date; var refAut = Convert.ToInt16(BusinessEnumerations.TipoReferencia.AUTOMATICO); partidas = partidas ?? new Partidas(); var aproveed = Convert.ToInt16(BusinessEnumerations.EstatusCarga.APROBADO); switch (tipoOperacion) { case 21: var groupByFechaTrx = partidasList.GroupBy(c => c.PA_FECHA_TRX); foreach (var item in groupByFechaTrx) { //int intcounter = 1; var counterRecord = partidas.Count(c => DbFunctions.TruncateTime(c.PA_FECHA_TRX) == DbFunctions.TruncateTime(item.Key) && c.PA_STATUS_PARTIDA == aproveed && c.PA_ORIGEN_REFERENCIA == refAut) + 1; var itemgroup = item.Key; foreach (var internalcol in item) { if (string.IsNullOrEmpty(internalcol.PA_REFERENCIA) | internalcol.PA_REFERENCIA == "") { if (internalcol.PA_ORIGEN_REFERENCIA == refAut) { internalcol.PA_REFERENCIA = itemgroup.ToString(refFormat) + counterRecord.ToString().PadLeft(5, '0'); counterRecord++; } } internalcol.PA_FECHA_APROB = DateTime.Now; internalcol.PA_USUARIO_APROB = userName; internalcol.PA_STATUS_PARTIDA = Convert.ToInt16(BusinessEnumerations.EstatusCarga.APROBADO); //intcounter++; } } break; case 22: var groupByFechaTrx2 = partidasList.GroupBy(c => c.PA_FECHA_TRX); foreach (var item in groupByFechaTrx2) { //int intcounter = 1; var counterRecord = partidas.Count(c => DbFunctions.TruncateTime(c.PA_FECHA_TRX) == DbFunctions.TruncateTime(item.Key) && c.PA_STATUS_PARTIDA == aproveed && c.PA_ORIGEN_REFERENCIA == refAut) + 1; var itemgroup = item.Key; foreach (var internalcol in item) { if (string.IsNullOrEmpty(internalcol.PA_REFERENCIA) | internalcol.PA_REFERENCIA == "") { if (internalcol.PA_ORIGEN_REFERENCIA == refAut) { internalcol.PA_REFERENCIA = itemgroup.ToString(refFormat) + counterRecord.ToString().PadLeft(5, '0'); counterRecord++; } } internalcol.PA_FECHA_APROB = DateTime.Now; internalcol.PA_USUARIO_APROB = userName; internalcol.PA_STATUS_PARTIDA = Convert.ToInt16(BusinessEnumerations.EstatusCarga.APROBADO); //intcounter++; } } break; case 23: var groupByFechaTrx3 = partidasList.GroupBy(c => c.PA_FECHA_TRX); foreach (var item in groupByFechaTrx3) { //int intcounter = 1; var counterRecord = partidas.Count(c => DbFunctions.TruncateTime(c.PA_FECHA_TRX) == DbFunctions.TruncateTime(item.Key) && c.PA_STATUS_PARTIDA == aproveed && c.PA_ORIGEN_REFERENCIA == refAut) + 1; var itemgroup = item.Key; foreach (var internalcol in item) { if (string.IsNullOrEmpty(internalcol.PA_REFERENCIA) | internalcol.PA_REFERENCIA == "") { if (internalcol.PA_ORIGEN_REFERENCIA == refAut) { internalcol.PA_REFERENCIA = itemgroup.ToString(refFormat) + counterRecord.ToString().PadLeft(5, '0'); counterRecord++; } } internalcol.PA_FECHA_APROB = DateTime.Now; internalcol.PA_USUARIO_APROB = userName; internalcol.PA_STATUS_PARTIDA = Convert.ToInt16(BusinessEnumerations.EstatusCarga.APROBADO); //intcounter++; } } break; default: break; } return(partidasList); }