示例#1
0
 public Service()
 {
     InitializeComponent();
     Process        = new Timer();
     EnergexService = new SP4GLwsService();
     // Process.Interval = Configuration.TIME * Convert.ToInt32(TimeAppConfig);
     Process.Interval = Configuration.TIME * 0.1;
     Process.Elapsed += Process_Elapsed;
 }
示例#2
0
        private bool CancelationProcess(string Folio, int?NumEmpleadoMexLog)
        {
            bool           Result   = false;
            SP4GLwsService Servicio = new SP4GLwsService();

            if (NumEmpleadoMexLog.HasValue)
            {
                string request  = "com.spinvent.gascard.dbobj.Txnenquirymaxload;cancelacion_vale;Cliente;" + Configuration.USERNAME + ";Contraseña;" + Configuration.PASS + ";Folio;" + Folio + ";usuario_cliente;" + Convert.ToString(NumEmpleadoMexLog) + ";";
                var    response = Servicio.executeProcedureDevice(Configuration.USERNAME, Configuration.PASS, Configuration.DEVICE, request);

                if (response != string.Empty)
                {
                    var registro   = response.Split(';');
                    int arrayIndex = 0;

                    if (registro[arrayIndex] == "0")
                    {
                        Result = true;
                    }
                }
            }

            return(Result);
        }
示例#3
0
        public int PartialAuthorizationProcess(List <EnergexPartialAuthorizationList> List)
        {
            int Result;

            using (DbContextTransaction transaction = db.Database.BeginTransaction())
            {
                try
                {
                    Result = StatusProcess.INICIOPROCESO;
                    foreach (var item in List)
                    {
                        if (item.orden != null)
                        {
                            int Estatus        = Convert.ToInt32(AuthorizationStatus.AUTORIZACIONES_VALIDAS);
                            var LitrosCargados = db.LitrosCargados.Where(w => w.FolioEnergex == item.orden.Trim() && w.Estatus == Estatus).FirstOrDefault();

                            if (LitrosCargados != null)
                            {
                                LitrosCargados.LitrosCargados1 = Convert.ToDecimal(item.Litres.Trim());
                                decimal?LitrosRestantes   = LitrosCargados.LitrosSolicitados - LitrosCargados.LitrosCargados1;
                                string  EstatusComentario = string.Empty;

                                if (LitrosRestantes <= Configuration.LITROMINIMO)
                                {
                                    LitrosCargados.Estatus = Convert.ToInt32(AuthorizationStatus.AUTORIZACIONES_UTILIZADAS_TOTALIDAD);
                                    Estatus           = Convert.ToInt32(AuthorizationStatus.AUTORIZACIONES_UTILIZADAS_TOTALIDAD);
                                    EstatusComentario = "AUTORIZACION PARCIAL ES MENOR A 1 LITRO";
                                }
                                else
                                {
                                    int?   NumEmpleadoMexLog  = db.EmpleadoEnergex.Where(w => w.NumEmpleadoEnergex == LitrosCargados.NumeroEmpleadoEnergex).Select(s => s.NumEmpleadoMexLog).FirstOrDefault();
                                    string NumEmpleadoEnergex = LitrosCargados.NumeroEmpleadoEnergex;
                                    LitrosCargados.Estatus = Convert.ToInt32(AuthorizationStatus.AUTORIZACIONES_UTILIZADAS_PARCIALMENTE);
                                    string Folio = db.LitrosCargados.OrderByDescending(o => o.FolioEnergex).Select(s => s.FolioEnergex).Take(1).FirstOrDefault();
                                    Folio = FolioGenerator(Folio);
                                    DateTime FechaVencimiento = DateTime.Now.AddDays(Configuration.ExpirationDays);

                                    string Comentario = string.Empty;

                                    if (LitrosCargados.SolicitudDepositoId != null)
                                    {
                                        int numeroviaje = 0;
                                        numeroviaje = db.SolicitudDeposito.Where(w => w.SolicitudDepositoId == LitrosCargados.SolicitudDepositoId)
                                                      .Select(s => s.ClaveCarga).FirstOrDefault();

                                        Comentario = Configuration.COMMENT + numeroviaje + ".";
                                    }

                                    if (LitrosCargados.SolicitudDepositoTraficoId != null)
                                    {
                                        string FolioOrden = string.Empty;
                                        int    Id         = 0;

                                        Id = db.SolicitudDepositoTraficoDiesel.Where(w => w.SolicitudDepositoDieselId == LitrosCargados.SolicitudDepositoTraficoId)
                                             .Select(s => s.SolicitudDepositoId).FirstOrDefault();

                                        FolioOrden = db.SolicitudDepositoTrafico.Where(w => w.SolicitudDepositoId == Id)
                                                     .Select(s => s.FolioOrden).FirstOrDefault();

                                        Comentario = Configuration.COMMENT + FolioOrden + ".";
                                    }

                                    if (LitrosCargados.SolicitudDepositoComplementoId != null)
                                    {
                                        int Id         = 0;
                                        int clavecarga = 0;

                                        Id = db.SolicitudDepositoComplemento.Where(w => w.SolicitudDepositoComplementoId == LitrosCargados.SolicitudDepositoComplementoId)
                                             .Select(s => s.SolicitudDepositoId).FirstOrDefault();

                                        clavecarga = db.SolicitudDeposito.Where(w => w.SolicitudDepositoId == Id)
                                                     .Select(s => s.ClaveCarga).FirstOrDefault();

                                        Comentario = Configuration.COMMENT + clavecarga + ".";
                                    }

                                    if (LitrosCargados.MovimientoExternoId != null)
                                    {
                                        Comentario = "Se realizo autorizacion de combustible desdes el servicio, Movimiento Externo con Folio: " + Folio;
                                    }

                                    SP4GLwsService Servicio = new SP4GLwsService();
                                    string         request  = "com.spinvent.gascard.dbobj.Txnenquirymaxload;registro_autorizacion;Cliente;" + Configuration.USERNAME + ";Contraseña;" + Configuration.PASS + ";usuario_energex;" + NumEmpleadoEnergex + ";Litros;" + Convert.ToString(LitrosRestantes) + ";Folio;" + Folio + ";Estacion;;FechaValidez;" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", FechaVencimiento) + ";usuario_cliente;" + Convert.ToString(NumEmpleadoMexLog) + ";Producto;" + item.fkIdProduct + ";Comentario;" + Comentario + ";";
                                    var            response = Servicio.executeProcedureDevice(Configuration.USERNAME, Configuration.PASS, Configuration.DEVICE, request);

                                    if (response != string.Empty)
                                    {
                                        var registro   = response.Split(';');
                                        int arrayIndex = 0;
                                        if (registro[arrayIndex] == "0")
                                        {
                                            LitrosCargados Cargados = new LitrosCargados();

                                            if (LitrosCargados.SolicitudDepositoId != null)
                                            {
                                                Cargados.SolicitudDepositoId = LitrosCargados.SolicitudDepositoId;
                                            }

                                            if (LitrosCargados.SolicitudDepositoTraficoId != null)
                                            {
                                                Cargados.SolicitudDepositoTraficoId = LitrosCargados.SolicitudDepositoTraficoId;
                                            }

                                            if (LitrosCargados.SolicitudDepositoComplementoId != null)
                                            {
                                                Cargados.SolicitudDepositoComplementoId = LitrosCargados.SolicitudDepositoComplementoId;
                                            }

                                            if (LitrosCargados.MovimientoExternoId != null)
                                            {
                                                Cargados.MovimientoExternoId = LitrosCargados.MovimientoExternoId;
                                            }

                                            Cargados.FolioEnergex          = Folio;
                                            Cargados.LitrosSolicitados     = LitrosRestantes;
                                            Cargados.LitrosCargados1       = 0;
                                            Cargados.Estatus               = Convert.ToInt32(AuthorizationStatus.AUTORIZACIONES_VALIDAS);
                                            Cargados.NumeroEmpleadoEnergex = NumEmpleadoEnergex;
                                            Cargados.FechaRegistro         = DateTime.Now;

                                            db.LitrosCargados.Add(Cargados);
                                            db.SaveChanges();

                                            EstatusComentario = "AUTORIZACION PARCIAL, GENERO OTRA AUTORIZACION LITROS " + LitrosRestantes.ToString();
                                        }
                                        else
                                        {
                                            EstatusComentario = "AUTORIZACION PARCIAL NO GENERO OTRA AUTORIZACION POR EL ERROR: " + registro[1];
                                        }
                                    }
                                    else
                                    {
                                        EstatusComentario = "AUTORIZACION PARCIAL PROBLEMAS CON EL SERVICIO NO RESPONDE PARA GENERAR OTRA AUTORIZACION";
                                    }
                                }

                                db.Entry(LitrosCargados).State = EntityState.Modified;
                                db.SaveChanges();

                                AutorizacionesParcialesEnergex Log = new AutorizacionesParcialesEnergex();

                                Log.idTxnPurchaseCashCard = item.idTxnPurchaseCashCard.Trim();
                                Log.Date             = item.Date;
                                Log.fkIdMerchant     = item.fkIdMerchant.Trim();
                                Log.fkIdTerminal     = item.fkIdTerminal.Trim();
                                Log.fkIdProduct      = item.fkIdProduct.Trim();
                                Log.Amount           = item.Amount.Trim();
                                Log.LicensePlate     = item.LicensePlate.Trim();
                                Log.Litres           = item.Litres.Trim();
                                Log.Kms              = item.Kms.Trim();
                                Log.ProductUnitPrice = item.ProductUnitPrice.Trim();
                                Log.AuthNum          = item.AuthNum.Trim();
                                Log.orden            = item.orden.Trim();
                                Log.Estatus          = EstatusComentario;

                                db.AutorizacionesParcialesEnergex.Add(Log);
                                db.SaveChanges();
                                Result = StatusProcess.EJECUTOPROCESO;
                            }
                        }
                    }

                    transaction.Commit();
                    return(Result);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Result = StatusProcess.ERROR;
                    EnviarCorreoError(ex.Message, "Autorizaciones Parciales Energex");
                    return(Result);
                }
            }
        }