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);
        }
        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);
        }
Пример #3
0
        public DtoLib.ResultadoAuto DocumentoAdm_Agregar_Pedido(DtoLibPos.DocumentoAdm.Agregar.Pedido.Ficha ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var cn = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var mesRelacion  = fechaSistema.Month.ToString().Trim().PadLeft(2, '0');
                        var anoRelacion  = fechaSistema.Year.ToString().Trim().PadLeft(4, '0');
                        var fechaNula    = new DateTime(2000, 1, 1);

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

                        var fichaEnc   = ficha.Encabezado;
                        var aVenta     = cn.Database.SqlQuery <int>("select a_ventas from sistema_contadores").FirstOrDefault();
                        var aDocumento = cn.Database.SqlQuery <int>("select a_ventas_pedido from sistema_contadores").FirstOrDefault();
                        var largo      = 0;
                        largo = 10 - fichaEnc.Prefijo.Length;
                        var fechaVenc    = fechaSistema.AddDays(fichaEnc.Dias);
                        var autoVenta    = fichaEnc.Prefijo + aVenta.ToString().Trim().PadLeft(largo, '0');
                        var autoCxC      = "";
                        var autoRecibo   = "";
                        var reciboNUmero = "";
                        var documentoNro = aDocumento.ToString().Trim().PadLeft(10, '0');


                        //DOCUMENTO VENTA
                        var entVenta = new ventas()
                        {
                            auto                       = autoVenta,
                            documento                  = documentoNro,
                            fecha                      = fechaSistema.Date,
                            fecha_vencimiento          = fechaVenc.Date,
                            razon_social               = fichaEnc.RazonSocial,
                            dir_fiscal                 = fichaEnc.DirFiscal,
                            ci_rif                     = fichaEnc.CiRif,
                            tipo                       = fichaEnc.Tipo,
                            exento                     = fichaEnc.Exento,
                            base1                      = fichaEnc.Base1,
                            base2                      = fichaEnc.Base2,
                            base3                      = fichaEnc.Base3,
                            impuesto1                  = fichaEnc.Impuesto1,
                            impuesto2                  = fichaEnc.Impuesto2,
                            impuesto3                  = fichaEnc.Impuesto3,
                            @base                      = fichaEnc.MBase,
                            impuesto                   = fichaEnc.Impuesto,
                            total                      = fichaEnc.Total,
                            tasa1                      = fichaEnc.Tasa1,
                            tasa2                      = fichaEnc.Tasa2,
                            tasa3                      = fichaEnc.Tasa3,
                            nota                       = fichaEnc.Nota,
                            tasa_retencion_iva         = fichaEnc.TasaRetencionIva,
                            tasa_retencion_islr        = fichaEnc.TasaRetencionIslr,
                            retencion_iva              = fichaEnc.RetencionIva,
                            retencion_islr             = fichaEnc.TasaRetencionIslr,
                            auto_cliente               = fichaEnc.AutoCliente,
                            codigo_cliente             = fichaEnc.CodigoCliente,
                            mes_relacion               = mesRelacion,
                            control                    = fichaEnc.Control,
                            fecha_registro             = fechaSistema.Date,
                            orden_compra               = fichaEnc.OrdenCompra,
                            dias                       = fichaEnc.Dias,
                            descuento1                 = fichaEnc.Descuento1,
                            descuento2                 = fichaEnc.Descuento2,
                            cargos                     = fichaEnc.Cargos,
                            descuento1p                = fichaEnc.Descuento1p,
                            descuento2p                = fichaEnc.Descuento2p,
                            cargosp                    = fichaEnc.Cargosp,
                            columna                    = fichaEnc.Columna,
                            estatus_anulado            = fichaEnc.EstatusAnulado,
                            aplica                     = fichaEnc.Aplica,
                            comprobante_retencion      = fichaEnc.ComprobanteRetencion,
                            subtotal_neto              = fichaEnc.SubTotalNeto,
                            telefono                   = fichaEnc.Telefono,
                            factor_cambio              = fichaEnc.FactorCambio,
                            codigo_vendedor            = fichaEnc.CodigoVendedor,
                            vendedor                   = fichaEnc.Vendedor,
                            auto_vendedor              = fichaEnc.AutoVendedor,
                            fecha_pedido               = fichaEnc.FechaPedido,
                            pedido                     = fichaEnc.Pedido,
                            condicion_pago             = fichaEnc.CondicionPago,
                            usuario                    = fichaEnc.Usuario,
                            codigo_usuario             = fichaEnc.CodigoUsuario,
                            codigo_sucursal            = fichaEnc.CodigoSucursal,
                            hora                       = fechaSistema.ToShortTimeString(),
                            transporte                 = fichaEnc.Transporte,
                            codigo_transporte          = fichaEnc.CodigoTransporte,
                            monto_divisa               = fichaEnc.MontoDivisa,
                            despachado                 = fichaEnc.Despachado,
                            dir_despacho               = fichaEnc.DirDespacho,
                            estacion                   = fichaEnc.Estacion,
                            auto_recibo                = autoRecibo,
                            recibo                     = reciboNUmero,
                            renglones                  = fichaEnc.Renglones,
                            saldo_pendiente            = fichaEnc.SaldoPendiente,
                            ano_relacion               = anoRelacion,
                            comprobante_retencion_islr = fichaEnc.ComprobanteRetencionIslr,
                            dias_validez               = fichaEnc.DiasValidez,
                            auto_usuario               = fichaEnc.AutoUsuario,
                            auto_transporte            = fichaEnc.AutoTransporte,
                            situacion                  = fichaEnc.Situacion,
                            signo                      = fichaEnc.Signo,
                            serie                      = fichaEnc.Serie,
                            tarifa                     = fichaEnc.Tarifa,
                            tipo_remision              = fichaEnc.TipoRemision,
                            documento_remision         = fichaEnc.DocumentoRemision,
                            auto_remision              = fichaEnc.AutoRemision,
                            documento_nombre           = fichaEnc.DocumentoNombre,
                            subtotal_impuesto          = fichaEnc.SubTotalImpuesto,
                            subtotal                   = fichaEnc.SubTotal,
                            auto_cxc                   = autoCxC,
                            tipo_cliente               = fichaEnc.TipoCliente,
                            planilla                   = fichaEnc.Planilla,
                            expediente                 = fichaEnc.Expendiente,
                            anticipo_iva               = fichaEnc.AnticipoIva,
                            terceros_iva               = fichaEnc.TercerosIva,
                            neto                       = fichaEnc.Neto,
                            costo                      = fichaEnc.Costo,
                            utilidad                   = fichaEnc.Utilidad,
                            utilidadp                  = fichaEnc.Utilidadp,
                            documento_tipo             = fichaEnc.DocumentoTipo,
                            ci_titular                 = fichaEnc.CiTitular,
                            nombre_titular             = fichaEnc.NombreTitular,
                            ci_beneficiario            = fichaEnc.CiBeneficiario,
                            nombre_beneficiario        = fichaEnc.NombreBeneficiario,
                            clave                      = fichaEnc.Clave,
                            denominacion_fiscal        = fichaEnc.DenominacionFiscal,
                            cambio                     = fichaEnc.Cambio,
                            estatus_validado           = fichaEnc.EstatusValidado,
                            cierre                     = fichaEnc.Cierre,
                            fecha_retencion            = fechaNula,
                            estatus_cierre_contable    = fichaEnc.EstatusCierreContable,
                            cierre_ftp                 = fichaEnc.CierreFtp,
                        };
                        cn.ventas.Add(entVenta);
                        cn.SaveChanges();


                        //DETALLES
                        var sql1 = @"INSERT INTO ventas_detalle (auto_documento, auto_producto, codigo, nombre, auto_departamento,
                                    auto_grupo, auto_subgrupo, auto_deposito, cantidad, empaque, precio_neto, descuento1p, descuento2p,
                                    descuento3p, descuento1, descuento2, descuento3, costo_venta, total_neto, tasa, impuesto, total,
                                    auto, estatus_anulado, fecha, tipo, deposito, signo, precio_final, auto_cliente, decimales, 
                                    contenido_empaque, cantidad_und, precio_und, costo_und, utilidad, utilidadp, precio_item, 
                                    estatus_garantia, estatus_serial, codigo_deposito, dias_garantia, detalle, precio_sugerido,
                                    auto_tasa, estatus_corte, x, y, z, corte, categoria, cobranzap, ventasp, cobranzap_vendedor,
                                    ventasp_vendedor, cobranza, ventas, cobranza_vendedor, ventas_vendedor, costo_promedio_und, 
                                    costo_compra, estatus_checked, tarifa, total_descuento, codigo_vendedor, auto_vendedor, hora, cierre_ftp) 
                                    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}, {43}, {44}, {45}, {46}, {47},
                                    {48}, {49}, {50}, {51}, {52}, {53}, {54}, {55}, {56}, {57}, {58}, {59}, {60}, {61}, {62}, {63},
                                    {64}, {65}, {66}, {67})";
                        //CUERPO DEL DOCUMENTO => ITEMS
                        var item = 0;
                        foreach (var dt in ficha.Detalles)
                        {
                            item += 1;
                            var autoItem = item.ToString().Trim().PadLeft(10, '0');

                            var vd = cn.Database.ExecuteSqlCommand(sql1, autoVenta, dt.AutoProducto, dt.Codigo, dt.Nombre, dt.AutoDepartamento,
                                                                   dt.AutoGrupo, dt.AutoSubGrupo, dt.AutoDeposito, dt.Cantidad, dt.Empaque, dt.PrecioNeto, dt.Descuento1p,
                                                                   dt.Descuento2p, dt.Descuento3p, dt.Descuento1, dt.Descuento2, dt.Descuento3,
                                                                   dt.CostoVenta, dt.TotalNeto, dt.Tasa, dt.Impuesto, dt.Total, autoItem, dt.EstatusAnulado, fechaSistema.Date,
                                                                   dt.Tipo, dt.Deposito, dt.Signo, dt.PrecioFinal, dt.AutoCliente, dt.Decimales, dt.ContenidoEmpaque,
                                                                   dt.CantidadUnd, dt.PrecioUnd, dt.CostoUnd, dt.Utilidad, dt.Utilidadp, dt.PrecioItem, dt.EstatusGarantia,
                                                                   dt.EstatusSerial, dt.CodigoDeposito, dt.DiasGarantia, dt.Detalle, dt.PrecioSugerido, dt.AutoTasa, dt.EstatusCorte,
                                                                   dt.X, dt.Y, dt.Z, dt.Corte, dt.Categoria, dt.Cobranzap, dt.Ventasp, dt.CobranzapVendedor,
                                                                   dt.VentaspVendedor, dt.Cobranza, dt.Ventas, dt.CobranzaVendedor, dt.VentasVendedor,
                                                                   dt.CostoPromedioUnd, dt.CostoCompra, dt.EstatusChecked, dt.Tarifa, dt.TotalDescuento,
                                                                   dt.CodigoVendedor, dt.AutoVendedor, fechaSistema.ToShortTimeString(), dt.CierreFtp);
                            if (vd == 0)
                            {
                                result.Mensaje = "PROBLEMA AL REGISTRAR ITEM [ " + Environment.NewLine + dt.Nombre + " ]";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                        }

                        //BLOQUEAR MERCANCA
                        foreach (var dt in ficha.ItemDepositoBloquear)
                        {
                            var xp1 = new MySql.Data.MySqlClient.MySqlParameter();
                            xp1.ParameterName = "@p1";
                            xp1.Value         = dt.autoDeposito;
                            var xp2 = new MySql.Data.MySqlClient.MySqlParameter();
                            xp2.ParameterName = "@p2";
                            xp2.Value         = dt.autoProducto;
                            var xp3 = new MySql.Data.MySqlClient.MySqlParameter();
                            xp3.ParameterName = "@p3";
                            xp3.Value         = dt.cntUnd;
                            var xsql1 = @"update productos_deposito set 
                                            reservada=reservada+@p3, 
                                            disponible=disponible-@p3
                                        where auto_deposito=@p1 and auto_producto=@p2";
                            var vk1   = cn.Database.ExecuteSqlCommand(xsql1, xp1, xp2, xp3);
                            if (vk1 == 0)
                            {
                                var xmsg = "PROBLEMA AL ENCONTRAR PRODUCTO-DEPOSITO " + Environment.NewLine + "Deposito: " + dt.depDescripcion + Environment.NewLine + "Producto: " + dt.prdDescripcion;
                                result.Mensaje = xmsg;
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }

                            if (ficha.ValidarRupturaPorExistencia)
                            {
                                var yp1 = new MySql.Data.MySqlClient.MySqlParameter();
                                yp1.ParameterName = "@p1";
                                yp1.Value         = dt.autoDeposito;
                                var yp2 = new MySql.Data.MySqlClient.MySqlParameter();
                                yp2.ParameterName = "@p2";
                                yp2.Value         = dt.autoProducto;
                                var xsql2 = @"select disponible from  productos_deposito
                                            where auto_deposito=@p1 and auto_producto=@p2";
                                var cnt   = cn.Database.SqlQuery <decimal>(xsql2, yp1, yp2).FirstOrDefault();
                                if (cnt < 0m)
                                {
                                    var xmsg = "PROBLEMA AL BLOQUEAR MERCANCIA PRODUCTO-DEPOSITO" + Environment.NewLine + "Deposito: " + dt.depDescripcion + Environment.NewLine + "Producto: " + dt.prdDescripcion + Environment.NewLine + "NO HAY DISPONIBILIDAD";
                                    result.Mensaje = xmsg;
                                    result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                    return(result);
                                }
                            }
                        }


                        //TEMPORAL VENTA-DETALLE
                        var sql2 = @"DELETE from p_ventaadm_det where id_ventaAdm=@p1";
                        var p1   = new MySql.Data.MySqlClient.MySqlParameter();
                        p1.ParameterName = "@p1";
                        p1.Value         = ficha.VentaTemporal.id;
                        var vk2 = cn.Database.ExecuteSqlCommand(sql2, p1);
                        if (vk2 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ELIMINAR REGISTRO TEMPORAL-VENTA-DETALLES";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }


                        //TEMPORAL VENTA
                        var sql3 = @"DELETE from p_ventaadm where id=@p2";
                        var p2   = new MySql.Data.MySqlClient.MySqlParameter();
                        p2.ParameterName = "@p2";
                        p2.Value         = ficha.VentaTemporal.id;
                        vk2 = cn.Database.ExecuteSqlCommand(sql3, p2);
                        if (vk2 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ELIMINAR REGISTRO TEMPORAL-VENTA";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        cn.SaveChanges();
                        ts.Complete();
                        result.Auto = autoVenta;
                    }
                };
            }
            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);
        }
Пример #4
0
        public DtoLib.Resultado DocumentoAdm_Anular_Presupuesto(DtoLibPos.DocumentoAdm.Anular.Prersupuesto.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cn = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var fechaNula    = new DateTime(2000, 1, 1);

                        var ent = cn.ventas.Find(ficha.autoDocumento);
                        if (ent == null)
                        {
                            result.Mensaje = "PROBLEMA AL ENCONTRAR DOCUMENTO [ NO REGISTRADO ] ";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        if (ent.estatus_anulado == "1")
                        {
                            result.Mensaje = "PROBLEMA ESTATUS DEL DOCUMENTO [ ANULADO ] ";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        //AUDITORIA
                        var sql = @"INSERT INTO `auditoria_documentos` (`auto_documento`, `auto_sistema_documentos`, 
                                    `auto_usuario`, `usuario`, `codigo`, `fecha`, `hora`, `memo`, `estacion`, `ip`) 
                                    VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, '')";
                        var p1  = new MySql.Data.MySqlClient.MySqlParameter("@p1", ficha.autoDocumento);
                        var p2  = new MySql.Data.MySqlClient.MySqlParameter("@p2", ficha.auditoria.autoSistemaDocumento);
                        var p3  = new MySql.Data.MySqlClient.MySqlParameter("@p3", ficha.auditoria.autoUsuario);
                        var p4  = new MySql.Data.MySqlClient.MySqlParameter("@p4", ficha.auditoria.usuario);
                        var p5  = new MySql.Data.MySqlClient.MySqlParameter("@p5", ficha.auditoria.codigo);
                        var p6  = new MySql.Data.MySqlClient.MySqlParameter("@p6", fechaSistema.Date);
                        var p7  = new MySql.Data.MySqlClient.MySqlParameter("@p7", fechaSistema.ToShortTimeString());
                        var p8  = new MySql.Data.MySqlClient.MySqlParameter("@p8", ficha.auditoria.motivo);
                        var p9  = new MySql.Data.MySqlClient.MySqlParameter("@p9", ficha.auditoria.estacion);
                        var v1  = cn.Database.ExecuteSqlCommand(sql, p1, p2, p3, p4, p5, p6, p7, p8, p9);
                        if (v1 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL REGISTRAR MOVIMIENTO AUDITORIA";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        //DOCUMENTO
                        sql = "update ventas set estatus_anulado='1' where auto=@p1";
                        var v2 = cn.Database.ExecuteSqlCommand(sql, p1);
                        if (v2 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR ESTATUS [ ANULADO ] AL DOCUMENTO ";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        //ITEMS DETALLE
                        sql = "update ventas_detalle set estatus_anulado='1' where auto_documento=@p1";
                        var v3 = cn.Database.ExecuteSqlCommand(sql, p1);
                        if (v3 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR ESTATUS [ ANULADO ] A LOS ITEMS DEL DOCUMENTO ";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        cn.SaveChanges();
                        ts.Complete();
                    }
                };
            }
            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);
        }
Пример #5
0
        public DtoLib.Resultado Cliente_Activar(DtoLibPos.Cliente.EstatusActivarInactivar.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var ctx = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = ctx.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var fechaNula    = new DateTime(2000, 01, 01);

                        var ent = ctx.clientes.Find(ficha.autoId);
                        if (ent == null)
                        {
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            result.Mensaje = "[ ID ] CLIENTE NO ENCONTRADO";
                            return(result);
                        }
                        ent.estatus    = "Activo";
                        ent.fecha_baja = fechaNula;
                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            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 ex)
            {
                var dbUpdateEx = ex as System.Data.Entity.Infrastructure.DbUpdateException;
                var sqlEx      = dbUpdateEx.InnerException;
                if (sqlEx != null)
                {
                    var exx = (MySql.Data.MySqlClient.MySqlException)sqlEx.InnerException;
                    if (exx != null)
                    {
                        if (exx.Number == 1452)
                        {
                            result.Mensaje = "PROBLEMA DE CLAVE FORANEA" + Environment.NewLine + exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        else
                        {
                            result.Mensaje = exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                    }
                }
                result.Mensaje = ex.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }
Пример #6
0
        public DtoLib.Resultado Cliente_Editar(DtoLibPos.Cliente.Editar.Actualizar.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var ctx = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = ctx.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var fechaNula    = new DateTime(2000, 01, 01);

                        var ent = ctx.clientes.Find(ficha.autoId);
                        if (ent == null)
                        {
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            result.Mensaje = "[ ID ] CLIENTE NO ENCONTRADO";
                            return(result);
                        }

                        ent.auto_grupo      = ficha.idGrupo;
                        ent.auto_zona       = ficha.idZona;
                        ent.auto_estado     = ficha.idEstado;
                        ent.auto_cobrador   = ficha.idCobrador;
                        ent.auto_vendedor   = ficha.idVendedor;
                        ent.ci_rif          = ficha.ciRif;
                        ent.razon_social    = ficha.razonSocial;
                        ent.dir_fiscal      = ficha.dirFiscal;
                        ent.telefono        = ficha.telefono1;
                        ent.estatus_credito = ficha.estatusCredito;
                        ent.categoria       = ficha.categoria;
                        ent.tarifa          = ficha.tarifa;
                        ent.dias_credito    = ficha.diasCredito;
                        ent.limite_credito  = ficha.limiteCredito;
                        ent.doc_pendientes  = ficha.limiteDoc;
                        ent.pais            = ficha.pais;
                        ent.codigo          = ficha.codigo;
                        ent.dir_despacho    = ficha.dirDespacho;
                        ent.contacto        = ficha.contacto;
                        ent.email           = ficha.email;
                        ent.website         = ficha.webSite;
                        ent.codigo_postal   = ficha.codPostal;
                        ent.descuento       = ficha.dscto;
                        ent.recargo         = ficha.cargo;
                        ent.telefono2       = ficha.telefono2;
                        ent.fax             = ficha.fax;
                        ent.celular         = ficha.celular;
                        ent.abc             = ficha.nivel;
                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            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 ex)
            {
                var dbUpdateEx = ex as System.Data.Entity.Infrastructure.DbUpdateException;
                var sqlEx      = dbUpdateEx.InnerException;
                if (sqlEx != null)
                {
                    var exx = (MySql.Data.MySqlClient.MySqlException)sqlEx.InnerException;
                    if (exx != null)
                    {
                        if (exx.Number == 1452)
                        {
                            result.Mensaje = "PROBLEMA DE CLAVE FORANEA" + Environment.NewLine + exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        else
                        {
                            result.Mensaje = exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                    }
                }
                result.Mensaje = ex.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }
Пример #7
0
        public DtoLib.ResultadoAuto Cliente_Agregar(DtoLibPos.Cliente.Agregar.Ficha ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var ctx = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var r = ctx.Database.ExecuteSqlCommand("update sistema_contadores set a_clientes=a_clientes+1");
                        if (r == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR CONTADOR DE CLIENTE";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        var fechaSistema = ctx.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var cntCliente   = ctx.Database.SqlQuery <int>("select a_clientes from sistema_contadores").FirstOrDefault();
                        var AutoCliente  = cntCliente.ToString().Trim().PadLeft(10, '0');
                        var fechaNula    = new DateTime(2000, 01, 01);

                        var ent = new clientes()
                        {
                            auto                  = AutoCliente,
                            auto_grupo            = ficha.autoGrupo,
                            auto_zona             = ficha.autoZona,
                            auto_estado           = ficha.autoEstado,
                            auto_agencia          = ficha.autoAgencia,
                            auto_cobrador         = ficha.autoCobrador,
                            auto_vendedor         = ficha.autoVendedor,
                            auto_codigo_anticipos = ficha.autoCodigoAnticipos,
                            auto_codigo_cobrar    = ficha.autoCodigoCobrar,
                            auto_codigo_ingresos  = ficha.autoCodigoIngreso,

                            ci_rif              = ficha.ciRif,
                            razon_social        = ficha.razonSocial,
                            dir_fiscal          = ficha.dirFiscal,
                            telefono            = ficha.telefono,
                            estatus             = ficha.estatus,
                            estatus_credito     = ficha.estatusCredito,
                            categoria           = ficha.categoria,
                            tarifa              = ficha.tarifa,
                            dias_credito        = ficha.diasCredito,
                            limite_credito      = ficha.limiteCredito,
                            doc_pendientes      = ficha.docPendientes,
                            pais                = ficha.pais,
                            fecha_alta          = fechaSistema.Date,
                            denominacion_fiscal = ficha.denominacionFiscal,

                            codigo            = ficha.codigo,
                            nombre            = ficha.nombre,
                            dir_despacho      = ficha.dirDespacho,
                            contacto          = ficha.contacto,
                            email             = ficha.email,
                            website           = ficha.webSite,
                            codigo_postal     = ficha.codigoPostal,
                            retencion_iva     = ficha.retencionIva,
                            retencion_islr    = ficha.retencionIslr,
                            descuento         = ficha.descuento,
                            recargo           = ficha.recargo,
                            estatus_morosidad = ficha.estatusMorosidad,
                            estatus_lunes     = ficha.estatusLunes,
                            estatus_martes    = ficha.estatusMartes,
                            estatus_miercoles = ficha.estatusMiercoles,
                            estatus_jueves    = ficha.estatusJueves,
                            estatus_viernes   = ficha.estatusViernes,
                            estatus_sabado    = ficha.estatusSabado,
                            estatus_domingo   = ficha.estatusDomingo,
                            fecha_baja        = fechaNula,
                            fecha_ult_pago    = fechaNula,
                            fecha_ult_venta   = fechaNula,
                            anticipos         = ficha.anticipos,
                            debitos           = ficha.debitos,
                            creditos          = ficha.creditos,
                            saldo             = ficha.saldo,
                            disponible        = ficha.disponible,
                            memo                  = ficha.memo,
                            aviso                 = ficha.aviso,
                            cuenta                = ficha.cuenta,
                            iban                  = ficha.iban,
                            swit                  = ficha.swit,
                            dir_banco             = ficha.dirBanco,
                            descuento_pronto_pago = ficha.descuentoProntoPago,
                            importe_ult_pago      = ficha.importeUltPago,
                            importe_ult_venta     = ficha.importeUltVenta,
                            telefono2             = ficha.telefono2,
                            fax                 = ficha.fax,
                            celular             = ficha.celular,
                            abc                 = ficha.abc,
                            fecha_clasificacion = fechaNula,
                            monto_clasificacion = ficha.montoClasificacion,
                        };
                        ctx.clientes.Add(ent);
                        ctx.SaveChanges();

                        ts.Complete();
                        result.Auto = AutoCliente;
                    }
                }
            }
            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 ex)
            {
                var dbUpdateEx = ex as System.Data.Entity.Infrastructure.DbUpdateException;
                var sqlEx      = dbUpdateEx.InnerException;
                if (sqlEx != null)
                {
                    var exx = (MySql.Data.MySqlClient.MySqlException)sqlEx.InnerException;
                    if (exx != null)
                    {
                        if (exx.Number == 1452)
                        {
                            result.Mensaje = "PROBLEMA DE CLAVE FORANEA" + Environment.NewLine + exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        else
                        {
                            result.Mensaje = exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                    }
                }
                result.Mensaje = ex.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }