public DtoLib.ResultadoId Cliente_Agregar(DtoLibPosOffLine.Cliente.Agregar ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new LibEntitySqLitePosOffLine.LeonuxPosOffLineEntities(_cnn.ConnectionString))
                {
                    var fechaSistema = DateTime.Now.Date; //cnn.Database.SqlQuery<DateTime>("select date('now')").FirstOrDefault();
                    var entCliente   = new LibEntitySqLitePosOffLine.Cliente()
                    {
                        cirif             = ficha.CiRif,
                        nombreRazonSocial = ficha.NombreRazaonSocial,
                        dirFiscal         = ficha.DirFiscal,
                        telefono          = ficha.Telefono,
                        fechaAlta         = fechaSistema.ToShortDateString(),
                    };
                    cnn.Cliente.Add(entCliente);
                    cnn.SaveChanges();
                    result.Id = (int)entCliente.id;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#2
0
        public DtoLib.ResultadoId Jornada_Abrir(DtoLibPosOffLine.Jornada.Abrir.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new LibEntitySqLitePosOffLine.LeonuxPosOffLineEntities(_cnn.ConnectionString))
                {
                    var ent = new LibEntitySqLitePosOffLine.Jornada()
                    {
                        estatus            = ficha.Estatus,
                        fechaApertura      = ficha.Fecha,
                        horaApertura       = ficha.Hora,
                        estatusTransmitida = "",
                        fechaCierre        = "",
                        horaCierre         = "",
                    };
                    cnn.Jornada.Add(ent);
                    cnn.SaveChanges();
                    result.Id = (int)ent.id;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#3
0
        public DtoLib.ResultadoId Operador_Abrir(DtoLibPosOffLine.Operador.Abrir.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new LibEntitySqLitePosOffLine.LeonuxPosOffLineEntities(_cnn.ConnectionString))
                {
                    var ent = new LibEntitySqLitePosOffLine.Operador()
                    {
                        idJornada     = ficha.IdJornada,
                        autoUsuario   = ficha.AutoUsuario,
                        codigoUsuario = ficha.CodigoUsuario,
                        usuario       = ficha.Usuario,
                        fechaApertura = ficha.Fecha,
                        horaApertura  = ficha.Hora,
                        estatus       = ficha.Estatus,
                        fechaCierre   = "",
                        horaCierre    = "",
                        prefijo       = ficha.Prefijo,
                    };
                    cnn.Operador.Add(ent);
                    cnn.SaveChanges();
                    result.Id = (int)ent.id;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoId Item_Agregar(DtoLibPosOffLine.Item.Agregar ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new LibEntitySqLitePosOffLine.LeonuxPosOffLineEntities(_cnn.ConnectionString))
                {
                    var entItem = new LibEntitySqLitePosOffLine.Item()
                    {
                        idPendiente         = -1,
                        autoPrd             = ficha.AutoPrd,
                        nombrePrd           = ficha.NombrePrd,
                        cantidad            = ficha.Cantidad,
                        tasaIva             = ficha.TasaImpuesto,
                        precioNeto          = ficha.PrecioNeto,
                        esPesado            = ficha.EsPesado,
                        tipoIva             = ficha.TipoIva,
                        costoUnd            = ficha.CostoCompraUnd,
                        costoPromUnd        = ficha.CostoPromedioUnd,
                        autoDepartamento    = ficha.AutoDepartamento,
                        autoGrupo           = ficha.AutoGrupo,
                        autoSubGrupo        = ficha.AutoSubGrupo,
                        autoTasa            = ficha.AutoTasaIva,
                        categoria           = ficha.Categoria,
                        codigoProducto      = ficha.CodigoPrd,
                        decimales           = ficha.Decimales,
                        diasEmpaqueGarantia = ficha.DiasEmpaqueGarantia,
                        empaqueCodigo       = ficha.EmpCodigo,
                        empaqueDescripcion  = ficha.EmpDescripcion,
                        empaqueContenido    = ficha.EmpContenido,
                        tarifaPrecio        = ficha.TarifaPrecio,
                        precioSugerido      = ficha.PrecioSugerido,
                        costoCompra         = ficha.CostoCompra,
                        costoPromedio       = ficha.CostoPromedio,
                    };
                    cnn.Item.Add(entItem);
                    cnn.SaveChanges();
                    result.Id = (int)entItem.id;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#5
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));
        }
示例#6
0
        public DtoLib.ResultadoId Jornada_Abrir(DtoLibPosOffLine.Jornada.Abrir.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            var r01 = ServiceProv.Jornada_Abrir_VerificaIsOk();

            if (r01.Entidad)
            {
                return(ServiceProv.Jornada_Abrir(ficha));
            }
            else
            {
                result.Mensaje = r01.Mensaje;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                result.Id      = -1;
                return(result);
            }
        }
        public DtoLib.ResultadoId VentaDocumento_Agregar(DtoLibPosOffLine.VentaDocumento.Agregar ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new LibEntitySqLitePosOffLine.LeonuxPosOffLineEntities(_cnn.ConnectionString))
                {
                    using (var ts = cnn.Database.BeginTransaction())
                    {
                        var fechaSistema = DateTime.Now.Date; //cnn.Database.SqlQuery<DateTime>("select date('now')").FirstOrDefault();
                        var mesRelacion  = fechaSistema.Month.ToString().Trim().PadLeft(2, '0');
                        var anoRelacion  = fechaSistema.Year.ToString();

                        var entSerie = cnn.Serie.FirstOrDefault(f => f.serie1.Trim().ToUpper() == ficha.Serie.Trim().ToUpper());
                        if (entSerie == null)
                        {
                            result.Mensaje = "SERIE DOCUMENTO NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        entSerie.correlativo += 1;
                        cnn.SaveChanges();
                        var _documento = entSerie.correlativo.ToString().Trim().PadLeft(10, '0');


                        var entVenta = new LibEntitySqLitePosOffLine.Venta()
                        {
                            idJornada         = ficha.IdJornada,
                            idOperador        = ficha.IdOperador,
                            documento         = _documento,
                            fecha             = fechaSistema.ToShortDateString(),
                            idCliente         = ficha.ClienteId,
                            nombreRazonSocial = ficha.ClienteNombreRazonSocial,
                            dirFiscal         = ficha.ClienteDirFiscal,
                            ciRif             = ficha.ClienteCiRif,
                            montoExento       = ficha.MontoExento,
                            montoBase         = ficha.MontoBase,
                            montoImpuesto     = ficha.MontoImpuesto,
                            base1             = ficha.MontoBase_1,
                            base2             = ficha.MontoBase_2,
                            base3             = ficha.MontoBase_3,
                            impuesto1         = ficha.MontoIva_1,
                            impuesto2         = ficha.MontoIva_2,
                            impuesto3         = ficha.MontoIva_3,
                            tasaIva1          = ficha.TasaIva_1,
                            tasaIva2          = ficha.TasaIva_2,
                            tasaIva3          = ficha.TasaIva_3,
                            mesRelacion       = mesRelacion,
                            control           = ficha.Control,
                            descuentoMonto1   = ficha.MontoDescuento_1,
                            descuentoMonto2   = ficha.MontoDescuento_2,
                            cargoMonto1       = ficha.MontoCargo_1,
                            descuentoPorc1    = ficha.PorcDescuento_1,
                            descuentoPorc2    = ficha.PorcDescuento_2,
                            cargoPorc_1       = ficha.PorcCargo_1,
                            estatusActivo     = 1,
                            tipoDocumento     = ficha.TipoDocumento,
                            aplica            = ficha.Aplica,
                            montoSubTotalNeto = ficha.MontoSubTotalNeto,
                            telefono          = ficha.ClienteTelefono,
                            factorCambio      = ficha.FactorCambio,
                            usuario           = ficha.UsuarioDescripcion,
                            usuarioCodigo     = ficha.UsuarioCodigo,
                            hora                  = ficha.HoraEmision,
                            montoDivisa           = ficha.MontoDivisa,
                            estacion              = ficha.Estacion,
                            renglones             = ficha.Renglones,
                            anoRelacion           = anoRelacion,
                            autoUsuario           = ficha.AutoUsuario,
                            signo                 = ficha.SignoDocumento,
                            serie                 = ficha.Serie,
                            montoSubTotalImpuesto = ficha.MontoSubTotalImpuesto,
                            montoSubTotal         = ficha.MontoSubTotal,
                            montoVentaNeta        = ficha.MontoVentaNeta,
                            montoCostoVenta       = ficha.MontoCostoVenta,
                            montoUtilidad         = ficha.MontoUtilidad,
                            montoUtilidadPorc     = ficha.PorcUtilidad,
                            montoTotal            = ficha.MontoTotal,
                            codigoSucursal        = ficha.CodigoSucursal,
                            prefijo               = ficha.Prefijo,
                            autoDeposito          = ficha.AutoDeposito,
                            codigoDeposito        = ficha.CodigoDeposito,
                            deposito              = ficha.DescripcionDeposito,
                            autoVendedor          = ficha.AutoVendedor,
                            codigoVendedor        = ficha.CodigoVendedor,
                            vendedor              = ficha.NombreVendedor,
                            autoCobrador          = ficha.AutoCobrador,
                            codigoCobrador        = ficha.CodigoCobrador,
                            cobrador              = ficha.NombreCobrador,
                            autoTransporte        = ficha.AutoTransporte,
                            codigoTransporte      = ficha.CodigoTransporte,
                            transporte            = ficha.NombreTransporte,
                            montoRecibido         = ficha.MontoRecibido,
                            cambioDar             = ficha.CambioDar,
                            esCredito             = ficha.IsCredito,
                            tarifa                = ficha.Tarifa,
                            saldoPendiente        = ficha.SaldoPendiente,
                            autoConceptoMov       = ficha.AutoConceptoMov,
                            codigoConceptoMov     = ficha.CodigoConceptoMov,
                            nombreConceptoMov     = ficha.NombreConceptoMov,
                        };
                        cnn.Venta.Add(entVenta);
                        cnn.SaveChanges();


                        foreach (var rg in ficha.Items)
                        {
                            var entItem = new LibEntitySqLitePosOffLine.VentaDetalle()
                            {
                                idVenta            = entVenta.id,
                                autoDepartamento   = rg.AutoDepartamento,
                                autoGrupo          = rg.AutoGrupo,
                                autoProducto       = rg.AutoProducto,
                                autoSubGrupo       = rg.AutoSubGrupo,
                                autoTasa           = rg.AutoTasa,
                                cantidad           = rg.Cantidad,
                                cantidadUnd        = rg.CantidadUnd,
                                categoria          = rg.Categoria,
                                codigoProducto     = rg.CodigoPrd,
                                costoCompraUnd     = rg.CostoCompraUnd,
                                costoPromedioUnd   = rg.CostoPromedioUnd,
                                costoVenta         = rg.CostoVenta,
                                decimales          = rg.Decimales,
                                diaEmpaqueGarantia = rg.DiasEmpaqueGarantia,
                                empaqueContenido   = rg.EmpaqueContenido,
                                empaqueDescripcion = rg.EmpaqueDescripcion,
                                empaqueCodigo      = rg.EmpaqueCodigo,
                                montoDesc1         = rg.MontoDscto_1,
                                montoDesc2         = rg.MontoDscto_2,
                                montoDesc3         = rg.MontoDscto_3,
                                montoIva           = rg.MontoIva,
                                NombreProducto     = rg.NombrePrd,
                                notas          = rg.Notas,
                                porctDesc1     = rg.PorcDscto_1,
                                porctDesc2     = rg.PorcDscto_2,
                                porctDesc3     = rg.PorcDscto_3,
                                precioFinal    = rg.PrecioFinal,
                                precioItem     = rg.PrecioItem,
                                precioNeto     = rg.PrecioNeto,
                                precioSugerido = rg.PrecioSugerido,
                                precioUnd      = rg.PrecioUnd,
                                tarifa         = rg.TarifaPrecio,
                                tasaIva        = rg.TasaIva,
                                total          = rg.Total,
                                totalNeto      = rg.TotalNeto,
                                utilidadMonto  = rg.MontoUtilidad,
                                utilidadPorct  = rg.PorctUtilidad,
                                totalDescuento = rg.TotalDescuento,
                                tipoIva        = rg.TipoIva,
                                esPesado       = rg.EsPesado,
                                costoCompra    = rg.CostoCompra,
                                costoPromedio  = rg.CostoPromedio,
                            };
                            cnn.VentaDetalle.Add(entItem);
                            cnn.SaveChanges();
                        }

                        if (ficha.MetodosPago != null)
                        {
                            foreach (var mt in ficha.MetodosPago)
                            {
                                var entMetodo = new LibEntitySqLitePosOffLine.VentaPago()
                                {
                                    idVenta           = entVenta.id,
                                    tipoMedioCobro    = mt.tipoMedioPago,
                                    autoMedioCobro    = mt.autoMedioPago,
                                    codioMedioCobro   = mt.codigoMedioPago,
                                    descripMedioCobro = mt.descripcionMedioPago,
                                    importe           = mt.Importe,
                                    montoRecibido     = mt.MontoRecibido,
                                    tasa       = mt.Tasa,
                                    lote       = mt.Lote,
                                    referencia = mt.Referencia,
                                };
                                cnn.VentaPago.Add(entMetodo);
                                cnn.SaveChanges();
                            }
                        }

                        foreach (var ie in ficha.ItemsLimpiar)
                        {
                            var entItemEliminar = cnn.Item.Find(ie.Id);
                            if (entItemEliminar == null)
                            {
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                result.Mensaje = "ITEM VENTA NO ENCONTRADO ";
                                return(result);
                            }
                            ;
                            cnn.Item.Remove(entItemEliminar);
                            cnn.SaveChanges();
                        }

                        ts.Commit();
                        result.Id = (int)entVenta.id;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#8
0
        public DtoLib.ResultadoId Venta_Item_Registrar(DtoLibPos.Venta.Item.Registrar.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var entDeposito = cnn.productos_deposito.FirstOrDefault(f => f.auto_producto == ficha.deposito.autoPrd && f.auto_deposito == ficha.deposito.autoDeposito);
                        if (entDeposito == null)
                        {
                            result.Mensaje = "PRODUCTO/DEPOSITO NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        if (ficha.validarExistencia)
                        {
                            if (ficha.deposito.cantBloq > entDeposito.disponible)
                            {
                                result.Mensaje = "EXISTENCIA A BLOQUEAR NO DISPONIBLE";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                        }
                        entDeposito.reservada  += ficha.deposito.cantBloq;
                        entDeposito.disponible -= ficha.deposito.cantBloq;
                        cnn.SaveChanges();

                        var entVenta = new p_venta()
                        {
                            auto_departamento  = ficha.item.autoDepartamento,
                            auto_grupo         = ficha.item.autoGrupo,
                            auto_producto      = ficha.item.autoProducto,
                            auto_subGrupo      = ficha.item.autoSubGrupo,
                            auto_tasa          = ficha.item.autoTasa,
                            cantidad           = ficha.item.cantidad,
                            categoria          = ficha.item.categoria,
                            codigo             = ficha.item.codigo,
                            costoCompra        = ficha.item.costoCompra,
                            costoPromedio      = ficha.item.costoPromedio,
                            costoPromedioUnd   = ficha.item.costoPromedioUnd,
                            costoUnd           = ficha.item.costoUnd,
                            decimales          = ficha.item.decimales,
                            empaqueContenido   = ficha.item.empaqueContenido,
                            empaqueDescripcion = ficha.item.empaqueDescripcion,
                            estatusPesado      = ficha.item.estatusPesado,
                            id_p_operador      = ficha.item.idOperador,
                            nombre             = ficha.item.nombre,
                            pdivisaFull        = ficha.item.pfullDivisa,
                            pneto          = ficha.item.pneto,
                            tarifaPrecio   = ficha.item.tarifaPrecio,
                            tasaIva        = ficha.item.tasaIva,
                            tipoIva        = ficha.item.tipoIva,
                            auto_deposito  = ficha.item.autoDeposito,
                            id_p_pendiente = -1,
                        };
                        cnn.p_venta.Add(entVenta);
                        cnn.SaveChanges();
                        result.Id = entVenta.id;

                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#9
0
        Transito_Movimiento_Agregar(DtoLibInventario.Transito.Movimiento.Agregar.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var s            = ficha.mov;
                        var entMov       = new productos_movimientos_transito()
                        {
                            autoriza       = s.autoriza,
                            cntRenglones   = s.cntRenglones,
                            codigoMov      = s.codigoMov,
                            desConcepto    = s.descConcepto,
                            desDepDestino  = s.descDepDestino,
                            desDepOrigen   = s.descDepOrigen,
                            desMov         = s.descMov,
                            desSucDestino  = s.descSucDestino,
                            desSucOrigen   = s.descSucOrigen,
                            desUsuario     = s.descUsuario,
                            estacionEquipo = s.estacionEquipo,
                            factorCambio   = s.factorCambio,
                            fecha          = fechaSistema.Date,
                            idConcepto     = s.idConcepto,
                            idDepDestino   = s.idDepDestino,
                            idDepOrigen    = s.idDeOrigen,
                            idSucDestino   = s.idSucDestino,
                            idSucOrigen    = s.idSucOrigen,
                            monto          = s.monto,
                            montoDivisa    = s.montoDivisa,
                            motivo         = s.motivo,
                            tipoMov        = s.tipoMov,
                        };
                        cnn.productos_movimientos_transito.Add(entMov);
                        cnn.SaveChanges();

                        foreach (var rg in ficha.detalles)
                        {
                            var det = new productos_movimientos_transito_detalle()
                            {
                                idTransito       = entMov.id,
                                autoDepart       = rg.autoDepart,
                                autoGrupo        = rg.autoGrupo,
                                autoProd         = rg.autoPrd,
                                autoTasa         = rg.autoTasa,
                                categoriaProd    = rg.catPrd,
                                codigoProd       = rg.codigoPrd,
                                contEmpaque      = rg.contEmp,
                                costo            = rg.costo,
                                costoUnd         = rg.costoUnd,
                                costoDivisa      = rg.costoDivisa,
                                costoDivisaUnd   = rg.costoDivisaUnd,
                                decimales        = rg.decimales,
                                descEmpaque      = rg.nombreEmp,
                                descTasa         = rg.descTasa,
                                esAdmDivisa      = rg.estatusDivisa,
                                exFisica         = rg.exFisica,
                                fechaUltActCosto = rg.fechaUltActCosto,
                                nombreProd       = rg.nombrePrd,
                                valorTasa        = rg.valorTasa,
                                exFisicaDestino  = rg.exFisicaDestino,
                                nivelMinimo      = rg.nivelMinimo,
                                nivelOptimo      = rg.nivelOptimo,
                                //
                                cantSolicitada      = rg.cantidadSolicitada,
                                costoSolicitado     = rg.costoSolicitada,
                                empaqueIdSolicitado = rg.empaqueIdSolicitada,
                                ajusteIdSolicitado  = rg.ajusteIdSolicitada,
                            };
                            cnn.productos_movimientos_transito_detalle.Add(det);
                            cnn.SaveChanges();
                        }

                        ts.Complete();
                        result.Id = entMov.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);
        }
        public DtoLib.Resultado Jornada_Cerrar(DtoLibPos.Pos.Cerrar.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var horaSistema  = fechaSistema.ToShortTimeString();

                        var pOperador = cnn.p_operador.Find(ficha.idOperador);
                        if (pOperador == null)
                        {
                            result.Mensaje = "[ ID] OPERADOR NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        pOperador.estatus      = ficha.estatus;
                        pOperador.fecha_cierre = fechaSistema.Date;
                        pOperador.hora_cierre  = horaSistema;
                        cnn.SaveChanges();

                        var          arq             = ficha.arqueoCerrar;
                        const string UpdatePosArqueo = @"UPDATE pos_arqueo SET " +
                                                       "diferencia={0}, efectivo={1}, cheque={2}, debito={3}, credito={4}, ticket={5}, firma={6}, " +
                                                       "retiro={7}, otros={8}, devolucion={9}, subtotal={10}, cobranza={11}, " +
                                                       "total={12}, mefectivo={13}, mcheque={14}, mbanco1={15}, mbanco2={16}, mbanco3={17}, mbanco4={18}, mtarjeta={19}, " +
                                                       "mticket={20}, mtrans={21}, mfirma={22}, motros={23}, mgastos={24}, mretiro={25}, mretenciones={26}, msubtotal={27}, " +
                                                       "mtotal={28}, cierre_ftp={29}, cnt_divisa={30}, cnt_divisa_usuario={31}, cntDoc={32}, cntDocFac={33}, cntDocNcr={34}, " +
                                                       "montoFac={35}, montoNcr={36}, fecha={38}, hora={39} " +
                                                       "where auto_cierre={37}";
                        var arqueo = cnn.Database.ExecuteSqlCommand(UpdatePosArqueo,
                                                                    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, arq.autoArqueo, fechaSistema.Date, horaSistema);
                        if (arqueo == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR MOVIMIENTO DE ARQUEO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        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);
        }
        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);
        }