示例#1
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);
        }
示例#2
0
        private void EnergexProcess(string Estatus)
        {
            try
            {
                EnergexBLL Ejecution = new EnergexBLL();

                DateTime DateStart = Ejecution.GetStarDate();
                DateTime DateEnd   = DateTime.Now.AddHours(2);
                string   Parametro = "";

                if (Estatus != AuthorizationStatus.AUTORIZACIONES_UTILIZADAS_PARCIALMENTE)
                {
                    Parametro = "com.spinvent.gascard.dbobj.Txnenquirymaxload;listado_autorizacion;Cliente;" + Configuration.USERNAME + ";Contraseña;" + Configuration.PASS + ";FechaInicial; " + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateStart) + "; FechaFinal;" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateEnd) + "; Estatus;" + Estatus + "; ";
                }
                else
                {
                    Parametro = "com.spinvent.gascard.dbobj.Txnpurchasecashcard;listado_consumos;Cliente;" + Configuration.USERNAME + ";Contraseña;" + Configuration.PASS + ";FechaInicial; " + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateStart) + "; FechaFinal;" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateEnd) + "; ";
                }

                var Response = EnergexService.executeProcedureDevice(Configuration.USERNAME, Configuration.PASS, Configuration.DEVICE, Parametro);

                if (Response != string.Empty)
                {
                    var HasError = Response.Split(';');
                    if (HasError[0] == ServiceState.SERVICE_SUCCESS)
                    {
                        string[] List = Regex.Split(Response, "\n");
                        List <EnergexAuthorizationList>        ObjList        = new List <EnergexAuthorizationList>();
                        List <EnergexPartialAuthorizationList> ObjPartialList = new List <EnergexPartialAuthorizationList>();

                        if (Estatus != AuthorizationStatus.AUTORIZACIONES_UTILIZADAS_PARCIALMENTE)
                        {
                            foreach (var item in List)
                            {
                                var Obj = GetEnergexClass(item);
                                ObjList.Add(Obj);
                            }
                        }
                        else
                        {
                            foreach (var item in List)
                            {
                                var Obj = GetEnergexPartialClass(item);
                                ObjPartialList.Add(Obj);
                            }
                        }

                        if (Estatus == AuthorizationStatus.AUTORIZACIONES_UTILIZADAS_TOTALIDAD)
                        {
                            int Result = Ejecution.TotalAuthorizationProcess(ObjList);
                            LogStatusProcess(Result, "Totales");
                        }

                        if (Estatus == AuthorizationStatus.AUTORIZACIONES_UTILIZADAS_PARCIALMENTE)
                        {
                            int Result = Ejecution.PartialAuthorizationProcess(ObjPartialList);
                            LogStatusProcess(Result, "Parciales");
                        }

                        if (Estatus == AuthorizationStatus.AUTORIZACIONES_CANCELADAS)
                        {
                            int Result = Ejecution.CanceledAuthorizationProcess(ObjList);
                            LogStatusProcess(Result, "Canceladas");
                        }

                        if (Estatus == AuthorizationStatus.AUTORIZACIONES_VENCIDAS)
                        {
                            int Result = Ejecution.VencidasAuthorizationProcess(ObjList);
                            LogStatusProcess(Result, "Vencidas");
                        }

                        if (Estatus == AuthorizationStatus.AUTORIZACIONES_VALIDAS)
                        {
                            int Result = Ejecution.ValidateAuthorizationProcess(ObjList);
                            LogStatusProcess(Result, "Validas");
                        }
                    }
                    else if (HasError[0] == ServiceState.SERVICE_NULL)
                    {
                        EventLog.WriteEntry("El servicio contiene un listado vacio", EventLogEntryType.Information);
                    }
                    else
                    {
                        EventLog.WriteEntry("Hay un error con el servicio energex", EventLogEntryType.Error);
                    }
                }
                else
                {
                    EventLog.WriteEntry("No se obtuvo una respuesa del servicio", EventLogEntryType.Error);
                }
            }
            catch (Exception ex)
            {
                EventLog.WriteEntry(ex.Message, EventLogEntryType.Error);
                Process.Stop();
            }
        }
示例#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);
                }
            }
        }