示例#1
0
        public DtoLib.ResultadoId Jornada_Abrir(DtoLibPos.Pos.Abrir.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            var r01 = ServiceProv.Jornada_Verificar_Abrir_EquipoSucursal(ficha.idEquipo, ficha.codSucursal);

            if (r01.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                result.Mensaje = r01.Mensaje;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                result.Id      = -1;
                return(result);
            }

            return(ServiceProv.Jornada_Abrir(ficha));
        }
示例#2
0
        public OOB.Resultado.FichaId Jornada_Abrir(OOB.Pos.Abrir.Ficha ficha)
        {
            var result = new OOB.Resultado.FichaId();

            var fichaDTO = new DtoLibPos.Pos.Abrir.Ficha()
            {
                idEquipo      = ficha.idEquipo,
                codSucursal   = ficha.codSucursal,
                operadorAbrir = new DtoLibPos.Pos.Abrir.Operador()
                {
                    estatus     = ficha.operadorAbrir.estatus,
                    idEquipo    = ficha.operadorAbrir.idEquipo,
                    idUsuario   = ficha.operadorAbrir.idUsuario,
                    codSucursal = ficha.codSucursal,
                },
                arqueoAbrir = new DtoLibPos.Pos.Abrir.Arqueo()
                {
                    cheque           = ficha.arqueoAbrir.cheque,
                    cierreFtp        = ficha.arqueoAbrir.cierreFtp,
                    cntDivisaUsuario = ficha.arqueoAbrir.cntDivisaUsuario,
                    cntDivisia       = ficha.arqueoAbrir.cntDivisia,
                    cntDoc           = ficha.arqueoAbrir.cntDoc,
                    cntDocFac        = ficha.arqueoAbrir.cntDocFac,
                    cntDocNCr        = ficha.arqueoAbrir.cntDocNCr,
                    cobranza         = ficha.arqueoAbrir.cobranza,
                    codUsuario       = ficha.arqueoAbrir.codUsuario,
                    credito          = ficha.arqueoAbrir.credito,
                    debito           = ficha.arqueoAbrir.debito,
                    devolucion       = ficha.arqueoAbrir.devolucion,
                    diferencia       = ficha.arqueoAbrir.diferencia,
                    efectivo         = ficha.arqueoAbrir.efectivo,
                    firma            = ficha.arqueoAbrir.firma,
                    idUsuario        = ficha.arqueoAbrir.idUsuario,
                    mbanco1          = ficha.arqueoAbrir.mbanco1,
                    mbanco2          = ficha.arqueoAbrir.mbanco2,
                    mbanco3          = ficha.arqueoAbrir.mbanco3,
                    mbanco4          = ficha.arqueoAbrir.mbanco4,
                    mcheque          = ficha.arqueoAbrir.mcheque,
                    mefectivo        = ficha.arqueoAbrir.mefectivo,
                    mfirma           = ficha.arqueoAbrir.mfirma,
                    mgastos          = ficha.arqueoAbrir.mgastos,
                    montoFac         = ficha.arqueoAbrir.montoFac,
                    montoNCr         = ficha.arqueoAbrir.montoNCr,
                    motros           = ficha.arqueoAbrir.motros,
                    mretenciones     = ficha.arqueoAbrir.mretenciones,
                    mretiro          = ficha.arqueoAbrir.mretiro,
                    msubtotal        = ficha.arqueoAbrir.msubtotal,
                    mtarjeta         = ficha.arqueoAbrir.mtarjeta,
                    mticket          = ficha.arqueoAbrir.mticket,
                    mtotal           = ficha.arqueoAbrir.mtotal,
                    mtrans           = ficha.arqueoAbrir.mtrans,
                    nombreUsuario    = ficha.arqueoAbrir.nombreUsuario,
                    otros            = ficha.arqueoAbrir.otros,
                    retiro           = ficha.arqueoAbrir.retiro,
                    subTotal         = ficha.arqueoAbrir.subTotal,
                    ticket           = ficha.arqueoAbrir.ticket,
                    total            = ficha.arqueoAbrir.total,
                },
                resumenAbrir = new DtoLibPos.Pos.Abrir.Resumen()
                {
                    cntDevolucion  = ficha.resumenAbrir.cntDevolucion,
                    cntDivisa      = ficha.resumenAbrir.cntDivisa,
                    cntDoc         = ficha.resumenAbrir.cntDoc,
                    cntDocContado  = ficha.resumenAbrir.cntDocContado,
                    cntDocCredito  = ficha.resumenAbrir.cntDocCredito,
                    cntEfectivo    = ficha.resumenAbrir.cntEfectivo,
                    cntElectronico = ficha.resumenAbrir.cntElectronico,
                    cntFac         = ficha.resumenAbrir.cntFac,
                    cntNCr         = ficha.resumenAbrir.cntNCr,
                    cntotros       = ficha.resumenAbrir.cntotros,
                    mContado       = ficha.resumenAbrir.mContado,
                    mCredito       = ficha.resumenAbrir.mCredito,
                    mDevolucion    = ficha.resumenAbrir.mDevolucion,
                    mDivisa        = ficha.resumenAbrir.mDivisa,
                    mEfectivo      = ficha.resumenAbrir.mEfectivo,
                    mElectronico   = ficha.resumenAbrir.mElectronico,
                    mFac           = ficha.resumenAbrir.mFac,
                    mNCr           = ficha.resumenAbrir.mNCr,
                    mOtros         = ficha.resumenAbrir.mOtros,
                }
            };
            var r01 = MyData.Jornada_Abrir(fichaDTO);

            if (r01.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                result.Mensaje = r01.Mensaje;
                result.Result  = OOB.Resultado.Enumerados.EnumResult.isError;
                return(result);
            }
            result.Id = r01.Id;

            return(result);
        }
        public DtoLib.ResultadoId Jornada_Abrir(DtoLibPos.Pos.Abrir.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var sql = "";

                        var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var horaSistema  = fechaSistema.ToShortTimeString();
                        var fechaNula    = new DateTime(2000, 01, 01);

                        sql = "update sistema_contadores set a_cierre=a_cierre+1 ";
                        var r1 = cnn.Database.ExecuteSqlCommand(sql);
                        if (r1 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR TABLA CONTADORES";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        var aCierre    = cnn.Database.SqlQuery <int>("select a_cierre from sistema_contadores").FirstOrDefault();
                        var autoCierre = ficha.codSucursal + ficha.idEquipo.Trim().PadLeft(2, '0');
                        autoCierre += aCierre.ToString().Trim().PadLeft((10 - autoCierre.Length), '0');

                        var op        = ficha.operadorAbrir;
                        var pOperador = new p_operador()
                        {
                            auto_usuario    = op.idUsuario,
                            estatus         = op.estatus,
                            fecha_apertura  = fechaSistema.Date,
                            fecha_cierre    = null,
                            hora_apertura   = horaSistema,
                            hora_cierre     = "",
                            id_equipo       = op.idEquipo,
                            codigo_sucursal = op.codSucursal,
                        };
                        cnn.p_operador.Add(pOperador);
                        cnn.SaveChanges();

                        var          arq = ficha.arqueoAbrir;
                        const string InsertarPosArqueo = @"INSERT INTO pos_arqueo (" +
                                                         "auto_cierre, auto_usuario, codigo, usuario, fecha, hora, " +
                                                         "diferencia, efectivo, cheque, debito, credito, ticket, firma, " +
                                                         "retiro, otros, devolucion, subtotal, cobranza, " +
                                                         "total, mefectivo, mcheque, mbanco1, mbanco2, mbanco3, mbanco4, mtarjeta, " +
                                                         "mticket, mtrans, mfirma, motros, mgastos, mretiro, mretenciones, msubtotal, " +
                                                         "mtotal, cierre_ftp, cnt_divisa, cnt_divisa_usuario, cntDoc, cntDocFac, cntDocNcr, " +
                                                         "montoFac, montoNcr)" +
                                                         "VALUES ({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, " +
                                                         "{12}, {13}, {14}, {15},{16}, {17}, {18}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, " +
                                                         "{26}, {27}, {28}, {29},{30}, {31}, {32}, {33}, {34}, {35}, {36}, {37}, {38}, {39}, " +
                                                         "{40}, {41}, {42})";
                        var arqueo = cnn.Database.ExecuteSqlCommand(InsertarPosArqueo,
                                                                    autoCierre, arq.idUsuario, arq.codUsuario, arq.nombreUsuario, fechaNula.Date, horaSistema,
                                                                    arq.diferencia, arq.efectivo, arq.cheque, arq.debito, arq.credito, arq.ticket, arq.firma,
                                                                    arq.retiro, arq.otros, arq.devolucion, arq.subTotal, arq.cobranza,
                                                                    arq.total, arq.mefectivo, arq.mcheque, arq.mbanco1, arq.mbanco2, arq.mbanco3, arq.mbanco4, arq.mtarjeta,
                                                                    arq.mticket, arq.mtrans, arq.mfirma, arq.motros, arq.mgastos, arq.mretiro, arq.mretenciones, arq.msubtotal,
                                                                    arq.mtotal, arq.cierreFtp, arq.cntDivisia, arq.cntDivisaUsuario, arq.cntDoc, arq.cntDocFac, arq.cntDocNCr,
                                                                    arq.montoFac, arq.montoNCr);
                        if (arqueo == 0)
                        {
                            result.Mensaje = "PROBLEMA AL REGISTRAR MOVIMIENTO DE ARQUEO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        cnn.SaveChanges();

                        var res      = ficha.resumenAbrir;
                        var pResumen = new p_resumen()
                        {
                            id_p_operador           = pOperador.id,
                            auto_pos_arqueo         = autoCierre,
                            m_efectivo              = res.mEfectivo,
                            cnt_efectivo            = res.cntEfectivo,
                            m_divisa                = res.mDivisa,
                            cnt_divisa              = res.cntDivisa,
                            m_electronico           = res.mElectronico,
                            cnt_electronico         = res.cntElectronico,
                            m_otros                 = res.mOtros,
                            cnt_otros               = res.cntotros,
                            m_devolucion            = res.mDevolucion,
                            cnt_devolucion          = res.cntDevolucion,
                            m_contado               = res.mContado,
                            m_credito               = res.mCredito,
                            cnt_doc                 = res.cntDoc,
                            cnt_fac                 = res.cntFac,
                            cnt_ncr                 = res.cntNCr,
                            m_fac                   = res.mFac,
                            m_ncr                   = res.mNCr,
                            cnt_doc_contado         = res.cntDocContado,
                            cnt_doc_credito         = res.cntDocCredito,
                            cnt_anu                 = 0,
                            cnt_anu_fac             = 0,
                            cnt_anu_ncr             = 0,
                            cnt_anu_nte             = 0,
                            cnt_cambio              = 0,
                            cnt_nte                 = 0,
                            m_anu                   = 0.0m,
                            m_anu_fac               = 0.0m,
                            m_anu_ncr               = 0.0m,
                            m_anu_nte               = 0.0m,
                            m_cambio                = 0.0m,
                            m_nte                   = 0.0m,
                            cnt_divisa_anulado      = 0,
                            cnt_doc_contado_anulado = 0,
                            cnt_doc_credito_anulado = 0,
                            cnt_efectivo_anulado    = 0,
                            cnt_electronico_anulado = 0,
                            cnt_otros_anulado       = 0,
                            m_contado_anulado       = 0.0m,
                            m_credito_anulado       = 0.0m,
                            m_divisa_aunlado        = 0.0m,
                            m_efectivo_anulado      = 0.0m,
                            m_electronico_anulado   = 0.0m,
                            m_otros_anulado         = 0.0m,
                            cnt_cambio_anulado      = 0,
                            m_cambio_anulado        = 0.0m,
                        };
                        cnn.p_resumen.Add(pResumen);
                        cnn.SaveChanges();

                        ts.Complete();
                        result.Id = pOperador.id;
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException e)
            {
                var msg = "";
                foreach (var eve in e.Entries)
                {
                    //msg += eve.m;
                    foreach (var ve in eve.CurrentValues.PropertyNames)
                    {
                        msg += ve.ToString();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }