Ejemplo n.º 1
0
 public int SaveCpcompradet(Cpcompradet entity)
 {
     return(CpcompradetDao.Save(entity));
 }
Ejemplo n.º 2
0
 public void UpdateCpcompradet(Cpcompradet entity)
 {
     CpcompradetDao.Update(entity);
 }
Ejemplo n.º 3
0
        public bool GuardarCpCompra(TipoMantenimiento tipoMantenimiento, Cpcompra entidadCab, List <VwCpcompradet> entidadDetList, List <VwEntradaalmacendet> vwEntradaalmacendetListOrigen)
        {
            using (var db = OrmLiteHelper.DbFactory.Open())
            {
                using (IDbTransaction trans = db.OpenTransaction(IsolationLevel.ReadCommitted))
                {
                    switch (tipoMantenimiento)
                    {
                    case TipoMantenimiento.Nuevo:
                        db.Save(entidadCab);
                        break;

                    case TipoMantenimiento.Modificar:
                        db.Update(entidadCab);
                        break;
                    }

                    if (entidadCab.Idcpcompra > 0)
                    {
                        foreach (var item in entidadDetList)
                        {
                            Cpcompradet cpcompradet = new Cpcompradet();

                            cpcompradet.Idcpcompradet        = item.Idcpcompradet;
                            cpcompradet.Idcpcompra           = entidadCab.Idcpcompra;
                            cpcompradet.Numeroitem           = item.Numeroitem;
                            cpcompradet.Idarticulo           = item.Idarticulo;
                            cpcompradet.Cantidad             = item.Cantidad;
                            cpcompradet.Idunidadmedida       = item.Idunidadmedida;
                            cpcompradet.Idimpuesto           = item.Idimpuesto;
                            cpcompradet.Preciounitario       = item.Preciounitario;
                            cpcompradet.Especificacion       = item.Especificacion;
                            cpcompradet.Descuento1           = item.Descuento1;
                            cpcompradet.Descuento2           = item.Descuento2;
                            cpcompradet.Descuento3           = item.Descuento3;
                            cpcompradet.Descuento4           = item.Descuento4;
                            cpcompradet.Preciounitarioneto   = item.Preciounitarioneto;
                            cpcompradet.Importetotal         = item.Importetotal;
                            cpcompradet.Idcentrodecosto      = item.Idcentrodecosto;
                            cpcompradet.Porcentajepercepcion = item.Porcentajepercepcion;
                            cpcompradet.Idarea                  = item.Idarea;
                            cpcompradet.Idproyecto              = item.Idproyecto;
                            cpcompradet.Idordencompradet        = item.Idordencompradet;
                            cpcompradet.Pesounitario            = item.Pesounitario;
                            cpcompradet.Pesototal               = item.Pesototal;
                            cpcompradet.Costounitario           = item.Costounitario;
                            cpcompradet.Descuentoproveedorcosto = item.Descuentoproveedorcosto;
                            cpcompradet.Idtipoafectacionigv     = item.Idtipoafectacionigv;
                            cpcompradet.Idordenserviciodet      = item.Idordenserviciodet;
                            cpcompradet.Calcularitem            = item.Calcularitem;

                            cpcompradet.Createdby    = item.Createdby;
                            cpcompradet.Creationdate = item.Creationdate;
                            cpcompradet.Modifiedby   = item.Modifiedby;
                            cpcompradet.Lastmodified = item.Lastmodified;
                            //Nuevo
                            if (item.Idcpcompradet == 0 && item.DataEntityState != DataEntityState.Deleted)
                            {
                                db.Save(cpcompradet);
                                item.Idcpcompradet = cpcompradet.Idcpcompradet;
                            }

                            //Modificar
                            if (item.Idcpcompradet > 0 && item.DataEntityState == DataEntityState.Modified)
                            {
                                db.Update(cpcompradet);
                            }

                            //Eliminar
                            if (item.Idcpcompradet > 0 && item.DataEntityState == DataEntityState.Deleted)
                            {
                                db.DeleteById <Cpcompradet>(item.Idcpcompradet);
                            }
                        }

                        //Grabar referencia de entradas de almacen

                        if (vwEntradaalmacendetListOrigen != null)
                        {
                            foreach (var item in vwEntradaalmacendetListOrigen)
                            {
                                Entradaalmacendetitemcpcompradet entradaalmacendetitemcpcompradet = new Entradaalmacendetitemcpcompradet();
                                entradaalmacendetitemcpcompradet.Identradaalmacendet = item.Identradaalmacendet;
                                entradaalmacendetitemcpcompradet.Cantidadimportada   = item.Cantidad;
                                entradaalmacendetitemcpcompradet.Idcpcompra          = entidadCab.Idcpcompra;
                                db.Save(entradaalmacendetitemcpcompradet);
                            }
                        }

                        //Verificar si hubo cambios en el orden de items
                        int cntNoOrden   = 0;
                        int nItemInicial = 0;
                        foreach (var item in entidadDetList.Where(x => x.DataEntityState != DataEntityState.Deleted))
                        {
                            if (nItemInicial + 1 != item.Numeroitem)
                            {
                                cntNoOrden++;
                            }
                            nItemInicial = item.Numeroitem;
                        }

                        if (cntNoOrden > 0)
                        {
                            int numeroItem = 1;
                            //Reenumerar y actualizar solo el nro de item
                            foreach (var item in entidadDetList.Where(x => x.DataEntityState != DataEntityState.Deleted)
                                     )
                            {
                                item.Numeroitem = numeroItem;
                                Cpcompradet cpcompradet = new Cpcompradet
                                {
                                    Numeroitem    = item.Numeroitem,
                                    Idcpcompradet = item.Idcpcompradet
                                };
                                db.Update <Cpcompradet>(new { cpcompradet.Numeroitem },
                                                        p => p.Idcpcompradet == cpcompradet.Idcpcompradet);
                                numeroItem++;
                            }
                        }
                    }
                    trans.Commit();
                    return(true);
                }
            }
        }