Beispiel #1
0
        public async Task <IHttpActionResult> DeleteAFI_IDocHi(string ace, string sal, string group, long SerialNumber, string ModeCode)
        {
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, SerialNumber, ModeCode == "1" ? "IIDoc" : "IODoc", 3, 0);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(@"DECLARE	@return_value int
                                                 EXEC	@return_value = [dbo].[Web_SaveIDoc_Del]
		                                                @SerialNumber = {0}
                                                 SELECT	'Return Value' = @return_value"
                                               , SerialNumber);

                    int value = UnitDatabase.db.Database.SqlQuery <int>(sql).Single();
                    if (value > 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception e)
                {
                    throw;
                }


                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, SerialNumber, ModeCode == "1" ? "IIDoc" : "IODoc", 3, "Y", 0);
                return(Ok(1));
            }
            return(Ok(con));
        }
        public async Task <IHttpActionResult> DeleteAFI_FDocBi(string ace, string sal, string group, long SerialNumber, int BandNo, string ModeCode, string FlagLog)
        {
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, SerialNumber, ModeCode, 6, BandNo);

            if (con == "ok")
            {
                try
                {
                    // Fct5: 'Fct5DocB'   'Radif'
                    // Inv5: 'Inv5DocB'   'Radif'
                    // Afi1: 'Afi1FDocB'  'BandNo'


                    //var list = UnitDatabase.db.AFI_FDocBi.First(c=>c.SerialNumber == SerialNumber && c.BandNo==BandNo);
                    //if (list == null)
                    //{
                    //    return NotFound();
                    //}
                    string sql = string.Format(@"DECLARE	@return_value int
                                                 EXEC	@return_value = [dbo].[Web_SaveFDoc_BD]
		                                                @SerialNumber = {0},
		                                                @BandNo = {1}
                                                 SELECT	'Return Value' = @return_value",
                                               SerialNumber,
                                               BandNo);

                    int value = UnitDatabase.db.Database.SqlQuery <int>(sql).Single();
                    if (value == 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }

                    string sqlUpdateBand = string.Format(@"DECLARE	@return_value int
                                                           EXEC	@return_value = [dbo].[Web_Doc_BOrder]
	                                                            @TableName = '{0}',
                                                                @SerialNumber = {1},
                                                                @BandNoFld = '{2}'
                                                           SELECT	'Return Value' = @return_value"    ,
                                                         ace == "Web1" ? "Afi1FDocB" : "Fct5DocB",
                                                         SerialNumber,
                                                         ace == "Web1" ? "BandNo" : "Radif");
                    int valueUpdateBand = UnitDatabase.db.Database.SqlQuery <int>(sqlUpdateBand).Single();
                    //await UnitDatabase.db.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    throw;
                }
                string sql1       = string.Format(@"SELECT SerialNumber,BandNo,KalaCode,KalaName,MainUnit,MainUnitName,Amount1,Amount2,Amount3,UnitPrice,TotalPrice,Discount,Comm,Up_Flag,KalaDeghatR1,KalaDeghatR2,KalaDeghatR3,KalaDeghatM1,KalaDeghatM2,KalaDeghatM3,DeghatR
                                         FROM Web_FDocB WHERE SerialNumber = {0}", SerialNumber.ToString());
                var    listFactor = UnitDatabase.db.Database.SqlQuery <Web_FDocB>(sql1);
                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, SerialNumber, ModeCode, 1, FlagLog, 0);
                return(Ok(listFactor));
            }
            return(Ok(con));
        }
        public async Task <IHttpActionResult> DeleteAFI_ADocBi(string ace, string sal, string group, long SerialNumber, int BandNo, string FlagLog)
        {
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, SerialNumber, "ADoc", 6, BandNo);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(@"DECLARE	@return_value int
                                                 EXEC	@return_value = [dbo].[Web_SaveADoc_BD]
		                                                @SerialNumber = {0},
		                                                @BandNo = {1}
                                                 SELECT	'Return Value' = @return_value",
                                               SerialNumber,
                                               BandNo);
                    int value = UnitDatabase.db.Database.SqlQuery <int>(sql).Single();
                    if (value == 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }

                    string sqlUpdateBand = string.Format(@"DECLARE	@return_value int
                                                             EXEC	@return_value = [dbo].[Web_Doc_BOrder]
                                                                  @TableName = '{0}',
                                                                  @SerialNumber = {1},
                                                                  @BandNoFld = '{2}'
                                                             SELECT	'Return Value' = @return_value"    ,
                                                         ace == "Web1" ? "Afi1ADocB" : "Acc5DocB",
                                                         SerialNumber,
                                                         "BandNo");
                    int valueUpdateBand = UnitDatabase.db.Database.SqlQuery <int>(sqlUpdateBand).Single();
                    await UnitDatabase.db.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    throw;
                }
                string sql1      = string.Format(@"SELECT * FROM Web_ADocB WHERE SerialNumber = {0}", SerialNumber.ToString());
                var    listSanad = UnitDatabase.db.Database.SqlQuery <Web_ADocB>(sql1);
                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, SerialNumber, "ADoc", 1, FlagLog, 0);
                return(Ok(listSanad));
            }
            else
            {
                return(Ok(con));
            }
        }
Beispiel #4
0
        public async Task <IHttpActionResult> PostWeb_ChangeStatus(string ace, string sal, string group, AFI_StatusChange AFI_StatusChange)
        {
            int value = 0;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, AFI_StatusChange.SerialNumber, "Adoc", 0, 0);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(CultureInfo.InvariantCulture,
                                               @"DECLARE	@return_value int
                            EXEC	@return_value = [dbo].[Web_SaveADoc_Status]
		                            @DMode = {0},
		                            @UserCode = N'{1}',
		                            @SerialNumber = {2},
		                            @Status = N'{3}'
                            SELECT	'Return Value' = @return_value"    ,
                                               AFI_StatusChange.DMode,
                                               AFI_StatusChange.UserCode,
                                               AFI_StatusChange.SerialNumber,
                                               AFI_StatusChange.Status);

                    value = UnitDatabase.db.Database.SqlQuery <int>(sql).Single();
                    if (value == 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception)
                {
                    throw;
                }

                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, AFI_StatusChange.SerialNumber, "ADoc", 7, "Y", 0);
                return(Ok(200));
            }
            else
            {
                return(Ok(con));
            }
        }
        public async Task <IHttpActionResult> PostAFI_ADocBi(string ace, string sal, string group, int bandNo, AFI_ADocBi aFI_ADocBi)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_ADocBi.SerialNumber ?? 0, "ADoc", 5, bandNo == 0 ? aFI_ADocBi.BandNo ?? 0 : bandNo);

            if (con == "ok")
            {
                try
                {
                    if (bandNo > 0)
                    {
                        string sqlUpdateBand = string.Format(@"DECLARE	@return_value int
                                                                 EXEC	@return_value = [dbo].[Web_Doc_BShift]
                                                                      @TableName = '{0}',
                                                                      @SerialNumber = {1},
                                                                      @BandNo = {2},
                                                                      @BandNoFld = '{3}'
                                                                 SELECT	'Return Value' = @return_value",
                                                             ace == "Web1" ? "Afi1ADocB" : "Acc5DocB",
                                                             aFI_ADocBi.SerialNumber,
                                                             bandNo,
                                                             "BandNo");
                        int valueUpdateBand = UnitDatabase.db.Database.SqlQuery <int>(sqlUpdateBand).Single();
                    }
                    string sql = string.Format(CultureInfo.InvariantCulture,
                                               @" DECLARE	@return_value int
                             EXEC	@return_value = [dbo].[Web_SaveADoc_BI]
		                            @SerialNumber = {0},
		                            @BandNo = {1},
		                            @AccCode = '{2}',
                                    @AccZCode = '{3}',		                            
                                    @Bede = {4},
		                            @Best = {5},
		                            @Comm = '{6}',
		                            @BandSpec = '{7}',
		                            @CheckNo = '{8}',
		                            @CheckDate = N'{9}',
		                            @Bank = '{10}',
		                            @Shobe = '{11}',
		                            @Jari = '{12}',
		                            @BaratNo = '{13}',
		                            @TrafCode = '{14}',
                                    @TrafZCode = '{15}',
		                            @CheckRadif = {16},
		                            @CheckComm = '{17}',
                                    @CheckStatus = '{18}',
		                            @CheckVosoolDate = N'{19}',
		                            @OprCode = '{20}',
		                            @MkzCode = '{21}',
		                            @ArzCode = '{22}',
		                            @ArzRate = {23},
		                            @ArzValue = {24}
                             SELECT	'Return Value' = @return_value"    ,
                                               aFI_ADocBi.SerialNumber,
                                               bandNo == 0 ? aFI_ADocBi.BandNo : bandNo,
                                               aFI_ADocBi.AccCode,
                                               aFI_ADocBi.AccZCode,
                                               aFI_ADocBi.Bede ?? 0,
                                               aFI_ADocBi.Best ?? 0,
                                               aFI_ADocBi.Comm,
                                               aFI_ADocBi.BandSpec,
                                               aFI_ADocBi.CheckNo,
                                               aFI_ADocBi.CheckDate,
                                               aFI_ADocBi.Bank,
                                               aFI_ADocBi.Shobe,
                                               aFI_ADocBi.Jari,
                                               aFI_ADocBi.BaratNo,
                                               aFI_ADocBi.TrafCode,
                                               aFI_ADocBi.TrafZCode,
                                               aFI_ADocBi.CheckRadif ?? 0,
                                               aFI_ADocBi.CheckComm,
                                               aFI_ADocBi.CheckStatus,
                                               aFI_ADocBi.CheckVosoolDate,
                                               aFI_ADocBi.OprCode,
                                               aFI_ADocBi.MkzCode,
                                               aFI_ADocBi.ArzCode,
                                               aFI_ADocBi.ArzRate ?? 0,
                                               aFI_ADocBi.arzValue ?? 0);
                    int value = UnitDatabase.db.Database.SqlQuery <int>(sql).Single();
                    if (value == 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                string sql1      = string.Format(@"SELECT * FROM Web_ADocB WHERE SerialNumber = {0}", aFI_ADocBi.SerialNumber);
                var    listSanad = UnitDatabase.db.Database.SqlQuery <Web_ADocB>(sql1);
                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_ADocBi.SerialNumber ?? 0, "ADoc", 1, aFI_ADocBi.flagLog, 0);
                return(Ok(listSanad));
            }
            else
            {
                return(Ok(con));
            }
        }
Beispiel #6
0
        public async Task <IHttpActionResult> PutAFI_IDocHi(string ace, string sal, string group, AFI_IDocHi aFI_IDocHi)
        {
            string value = "";

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_IDocHi.SerialNumber, aFI_IDocHi.InOut == 1 ? "IIDoc" : "IODoc", 1, 0);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(
                        @"DECLARE	@return_value nvarchar(50),
		                            @DocNo_Out int
                          EXEC	@return_value = [dbo].[Web_SaveIDoc_HU]
		                            @DOCNOMODE = {0},
		                            @INSERTMODE = {1},
		                            @MODECODE = '{2}' ,
		                            @DOCNO = {3},
		                            @STARTNO = {4},
		                            @ENDNO = {5},
		                            @BRANCHCODE = {6},
		                            @USERCODE = '{7}',
		                            @SERIALNUMBER = {8},
		                            @DOCDATE = '{9}',
		                            @SPEC = '{10}',
		                            @TANZIM = '{11}',
		                            @TAHIESHODE = '{12}',
		                            @CUSTCODE = '{13}',
		                            @KALAPRICECODE = {14},
                                    @InvCode = '{15}',
                                    @Status = N'{16}',
                                    @Footer = '{17}',
                                    @Taeed='{18}',
                                    @F01 = '{19}',
                                    @F02 = '{20}',
                                    @F03 = '{21}',
                                    @F04 = '{22}',
                                    @F05 = '{23}',
                                    @F06 = '{24}',
                                    @F07 = '{25}',
                                    @F08 = '{26}',
                                    @F09 = '{27}',
                                    @F10 = '{28}',
                                    @F11 = '{29}',
                                    @F12 = '{30}',
                                    @F13 = '{31}',
                                    @F14 = '{32}',
                                    @F15 = '{33}',
                                    @F16 = '{34}',
                                    @F17 = '{35}',
                                    @F18 = '{36}',
                                    @F19 = '{37}',
                                    @F20 = '{38}',
                                    @Tasvib = '{39}',
                                    @OprCode = '{40}',
                                    @MkzCode = '{41}',
		                            @DOCNO_OUT = @DOCNO_OUT OUTPUT
                            SELECT	'return_value' = @return_value +'-'+  CONVERT(nvarchar, @DOCNO_OUT)"    ,
                        aFI_IDocHi.DocNoMode,
                        aFI_IDocHi.InsertMode,
                        aFI_IDocHi.ModeCode,
                        aFI_IDocHi.DocNo,
                        aFI_IDocHi.StartNo,
                        aFI_IDocHi.EndNo,
                        aFI_IDocHi.BranchCode,
                        aFI_IDocHi.UserCode,
                        aFI_IDocHi.SerialNumber,
                        aFI_IDocHi.DocDate ?? string.Format("{0:yyyy/MM/dd}", DateTime.Now.AddDays(-1)),
                        aFI_IDocHi.Spec,
                        aFI_IDocHi.Tanzim,
                        aFI_IDocHi.TahieShode,
                        aFI_IDocHi.CustCode,
                        aFI_IDocHi.KalaPriceCode ?? 0,
                        aFI_IDocHi.InvCode,
                        aFI_IDocHi.Status,
                        //UnitPublic.ConvertTextWebToWin(aFI_IDocHi.Footer),
                        UnitPublic.ConvertTextWebToWin(aFI_IDocHi.Footer),
                        aFI_IDocHi.Taeed == "null" ? "" : aFI_IDocHi.Taeed,
                        aFI_IDocHi.F01,
                        aFI_IDocHi.F02,
                        aFI_IDocHi.F03,
                        aFI_IDocHi.F04,
                        aFI_IDocHi.F05,
                        aFI_IDocHi.F06,
                        aFI_IDocHi.F07,
                        aFI_IDocHi.F08,
                        aFI_IDocHi.F09,
                        aFI_IDocHi.F10,
                        aFI_IDocHi.F11,
                        aFI_IDocHi.F12,
                        aFI_IDocHi.F13,
                        aFI_IDocHi.F14,
                        aFI_IDocHi.F15,
                        aFI_IDocHi.F16,
                        aFI_IDocHi.F17,
                        aFI_IDocHi.F18,
                        aFI_IDocHi.F19,
                        aFI_IDocHi.F20,
                        aFI_IDocHi.Tasvib,
                        aFI_IDocHi.OprCode,
                        aFI_IDocHi.MkzCode
                        );
                    value = UnitDatabase.db.Database.SqlQuery <string>(sql).Single();

                    await UnitDatabase.db.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    throw;
                }

                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_IDocHi.SerialNumber, aFI_IDocHi.InOut == 1 ? "IIDoc" : "IODoc", 1, aFI_IDocHi.flagLog, 0);
                return(Ok(value));
            }
            return(Ok(con));
        }
Beispiel #7
0
        public async Task <IHttpActionResult> PostAFI_IDocHi(string ace, string sal, string group, AFI_IDocHi aFI_IDocHi)
        {
            string value = "";

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_IDocHi.SerialNumber, aFI_IDocHi.InOut == 1 ? "IIDoc" : "IODoc", 2, 0);

            if (con == "ok")
            {
                try
                {
                    // به دلیل اشکال در تبدیل sql کتیشن های یوز کد اینجوریه
                    string sql = string.Format(
                        @"DECLARE	@return_value nvarchar(50),
		                            @DocNo_Out int
                          EXEC	@return_value = [dbo].[Web_SaveIDoc_HI]
		                            @DOCNOMODE = {0},
		                            @INSERTMODE = {1},
		                            @MODECODE = '{2}' ,
		                            @DOCNO = {3},
		                            @STARTNO = {4},
		                            @ENDNO = {5},
		                            @BRANCHCODE = {6},
		                            @USERCODE = '''{7}''', 
		                            @SERIALNUMBER = {8},
		                            @DOCDATE = '{9}',
		                            @SPEC = '{10}',
		                            @TANZIM = '{11}',
		                            @TAHIESHODE = '{12}',
		                            @CUSTCODE = '{13}',
		                            @KALAPRICECODE = {14},
                                    @InvCode = '{15}',
                                    @Eghdam = N'''{16}''',
                                    @F01 = '{17}',
                                    @F02 = '{18}',
                                    @F03 = '{19}',
                                    @F04 = '{20}',
                                    @F05 = '{21}',
                                    @F06 = '{22}',
                                    @F07 = '{23}',
                                    @F08 = '{24}',
                                    @F09 = '{25}',
                                    @F10 = '{26}',
                                    @F11 = '{27}',
                                    @F12 = '{28}',
                                    @F13 = '{29}',
                                    @F14 = '{30}',
                                    @F15 = '{31}',
                                    @F16 = '{32}',
                                    @F17 = '{33}',
                                    @F18 = '{34}',
                                    @F19 = '{35}',
                                    @F20 = '{36}',
		                            @DOCNO_OUT = @DOCNO_OUT OUTPUT
                            SELECT	'return_value' = @return_value +'-'+  CONVERT(nvarchar, @DOCNO_OUT)"    ,
                        aFI_IDocHi.DocNoMode,
                        aFI_IDocHi.InsertMode,
                        aFI_IDocHi.ModeCode,
                        aFI_IDocHi.DocNo,
                        aFI_IDocHi.StartNo,
                        aFI_IDocHi.EndNo,
                        aFI_IDocHi.BranchCode,
                        aFI_IDocHi.UserCode,
                        aFI_IDocHi.SerialNumber,
                        aFI_IDocHi.DocDate ?? string.Format("{0:yyyy/MM/dd}", DateTime.Now.AddDays(-1)),
                        aFI_IDocHi.Spec,
                        aFI_IDocHi.Tanzim,
                        aFI_IDocHi.TahieShode,
                        aFI_IDocHi.CustCode ?? "",
                        aFI_IDocHi.KalaPriceCode ?? 0,
                        aFI_IDocHi.InvCode,
                        aFI_IDocHi.Eghdam,
                        aFI_IDocHi.F01,
                        aFI_IDocHi.F02,
                        aFI_IDocHi.F03,
                        aFI_IDocHi.F04,
                        aFI_IDocHi.F05,
                        aFI_IDocHi.F06,
                        aFI_IDocHi.F07,
                        aFI_IDocHi.F08,
                        aFI_IDocHi.F09,
                        aFI_IDocHi.F10,
                        aFI_IDocHi.F11,
                        aFI_IDocHi.F12,
                        aFI_IDocHi.F13,
                        aFI_IDocHi.F14,
                        aFI_IDocHi.F15,
                        aFI_IDocHi.F16,
                        aFI_IDocHi.F17,
                        aFI_IDocHi.F18,
                        aFI_IDocHi.F19,
                        aFI_IDocHi.F20);
                    value = UnitDatabase.db.Database.SqlQuery <string>(sql).Single();
                    if (!string.IsNullOrEmpty(value))
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception e)
                {
                    throw;
                }

                string[] serials = value.Split('-');
                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, Convert.ToInt64(serials[0]), aFI_IDocHi.InOut == 1 ? "IIDoc" : "IODoc", 2, aFI_IDocHi.flagLog, 0);

                return(Ok(value));
            }
            return(Ok(con));
        }
        public async Task <IHttpActionResult> PostAFI_IDocBi(string ace, string sal, string group, long bandNo, AFI_IDocBi aFI_IDocBi)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_IDocBi.SerialNumber, aFI_IDocBi.InOut == 1 ? "IIDoc" : "IODoc", 5, bandNo == 0 ? aFI_IDocBi.BandNo ?? 0 : Convert.ToInt32(bandNo));

            if (con == "ok")
            {
                try
                {
                    string fieldBandNo;
                    string tableName;
                    if (ace == "Web1")
                    {
                        tableName   = "Afi1IDocB";
                        fieldBandNo = "BandNo";
                    }
                    else
                    {
                        tableName   = "inv5docb";
                        fieldBandNo = "radif";
                    }

                    if (bandNo > 0)
                    {
                        string sqlUpdateBand = string.Format(@"DECLARE	@return_value int
                                                           EXEC	@return_value = [dbo].[Web_Doc_BShift]
	                                                            @TableName = '{0}',
                                                                @SerialNumber = {1},
                                                                @BandNo = {2},
                                                                @BandNoFld = '{3}'
                                                           SELECT	'Return Value' = @return_value"    ,
                                                             tableName,
                                                             aFI_IDocBi.SerialNumber,
                                                             bandNo,
                                                             fieldBandNo);
                        int valueUpdateBand = UnitDatabase.db.Database.SqlQuery <int>(sqlUpdateBand).Single();
                    }
                    string sql = string.Format(CultureInfo.InvariantCulture,
                                               @"DECLARE	@return_value int
                            EXEC	@return_value = [dbo].[Web_SaveIDoc_BI]
		                            @SerialNumber = {0},
		                            @BandNo = {1},
		                            @KalaCode = N'{2}',
		                            @Amount1 = {3},
		                            @Amount2 = {4},
		                            @Amount3 = {5},
		                            @UnitPrice = {6},
		                            @TotalPrice = {7},
		                            @MainUnit = {8},
		                            @Comm = N'{9}',
                                    @Up_Flag = {10},
                                    @OprCode = '{11}',
                                    @MkzCode = '{12}'
                            SELECT	'Return Value' = @return_value
                            ",
                                               aFI_IDocBi.SerialNumber,
                                               bandNo == 0 ? aFI_IDocBi.BandNo.ToString() : bandNo.ToString(),
                                               aFI_IDocBi.KalaCode,
                                               aFI_IDocBi.Amount1 ?? 0,
                                               aFI_IDocBi.Amount2 ?? 0,
                                               aFI_IDocBi.Amount3 ?? 0,
                                               aFI_IDocBi.UnitPrice ?? 0,
                                               aFI_IDocBi.TotalPrice ?? 0,
                                               aFI_IDocBi.MainUnit,
                                               aFI_IDocBi.Comm,
                                               aFI_IDocBi.Up_Flag,
                                               aFI_IDocBi.OprCode,
                                               aFI_IDocBi.MkzCode
                                               );
                    int value = UnitDatabase.db.Database.SqlQuery <int>(sql).Single();
                    if (value == 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception)
                {
                    throw;
                }

                string sql1       = string.Format(@"SELECT SerialNumber,BandNo,KalaCode,KalaName,MainUnit,MainUnitName,Amount1,Amount2,Amount3,UnitPrice,TotalPrice,Comm,Up_Flag,KalaDeghatR1,KalaDeghatR2,KalaDeghatR3,KalaDeghatM1,KalaDeghatM2,KalaDeghatM3,DeghatR
                                         FROM Web_IDocB WHERE SerialNumber = {0}", aFI_IDocBi.SerialNumber);
                var    listFactor = UnitDatabase.db.Database.SqlQuery <Web_IDocB>(sql1);
                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_IDocBi.SerialNumber, aFI_IDocBi.InOut == 1 ? "IIDoc" : "IODoc", 2, aFI_IDocBi.flagLog, 0);

                return(Ok(listFactor));
            }
            return(Ok(con));
        }
        public async Task <IHttpActionResult> PostWeb_MoveFactor(string ace, string sal, string group, AFI_Move AFI_Move)
        {
            long value = 0;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, AFI_Move.SerialNumber ?? 0, "", 0, 0);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(CultureInfo.InvariantCulture,
                                               @"DECLARE	@return_value int,
		                            @oSerialNumber bigint

                            EXEC	@return_value = [dbo].[Web_SaveFDoc_Move]
		                            @DocNoMode = {0},
		                            @InsertMode = {1},
		                            @ModeCode = N'{2}',
		                            @DocNo = {3},
		                            @StartNo = {4},
		                            @EndNo = {5},
		                            @BranchCode = {6},
		                            @UserCode = '''{7}''',
		                            @TahieShode = '{8}',
		                            @SerialNumber = {9},
		                            @DocDate = '{10}',
                                    @MoveMode = {11} ,
                                    @Per = {12} ,
		                            @oSerialNumber = @oSerialNumber OUTPUT
                            SELECT	@oSerialNumber as N'@oSerialNumber'"    ,
                                               AFI_Move.DocNoMode,
                                               AFI_Move.InsertMode,
                                               AFI_Move.ModeCode,
                                               AFI_Move.DocNo,
                                               AFI_Move.StartNo,
                                               AFI_Move.EndNo,
                                               AFI_Move.BranchCode,
                                               AFI_Move.UserCode,
                                               AFI_Move.TahieShode,
                                               AFI_Move.SerialNumber,
                                               AFI_Move.DocDate,
                                               AFI_Move.MoveMode,
                                               AFI_Move.Per
                                               );

                    value = UnitDatabase.db.Database.SqlQuery <long>(sql).Single();
                    if (value == 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception)
                {
                    throw;
                }

                var list = UnitDatabase.db.Web_FDocH.Where(c => c.SerialNumber == value && c.ModeCode == AFI_Move.ModeCode);
                if (AFI_Move.MoveMode == 0) // copy
                {
                    UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, value, AFI_Move.ModeCode, 2, "Y", 0);
                }
                else if (AFI_Move.MoveMode == 1) // move
                {
                    UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, AFI_Move.SerialNumber ?? 0, AFI_Move.LastModeCode, 8, "Y", 0);
                    UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, value, AFI_Move.ModeCode, 2, "Y", 0);
                }

                return(Ok(list));
            }

            return(Ok(con));
        }
        public async Task <IHttpActionResult> PutAFI_FDocBi(string ace, string sal, string group, long BandNo, AFI_FDocBi aFI_FDocBi)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_FDocBi.SerialNumber, aFI_FDocBi.ModeCode, 4, aFI_FDocBi.BandNo ?? 0);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(CultureInfo.InvariantCulture,
                                               @"DECLARE	@return_value int
                            EXEC	@return_value = [dbo].[Web_SaveFDoc_BU]
		                            @SerialNumber = {0},
		                            @BandNo = {1},
		                            @KalaCode = N'{2}',
		                            @Amount1 = {3},
		                            @Amount2 = {4},
		                            @Amount3 = {5},
		                            @UnitPrice = {6},
		                            @TotalPrice = {7},
                                    @Discount = {8},
		                            @MainUnit = {9},
		                            @Comm = N'{10}',
                                    @Up_Flag = {11},
                                    @OprCode = N'{12}',
		                            @MkzCode = N'{13}'

                            SELECT	'Return Value' = @return_value
                            ",
                                               aFI_FDocBi.SerialNumber,
                                               aFI_FDocBi.BandNo,
                                               aFI_FDocBi.KalaCode,
                                               aFI_FDocBi.Amount1 ?? 0,
                                               aFI_FDocBi.Amount2 ?? 0,
                                               aFI_FDocBi.Amount3 ?? 0,
                                               aFI_FDocBi.UnitPrice ?? 0,
                                               aFI_FDocBi.TotalPrice ?? 0,
                                               aFI_FDocBi.Discount ?? 0,
                                               aFI_FDocBi.MainUnit,
                                               aFI_FDocBi.Comm,
                                               aFI_FDocBi.Up_Flag,
                                               aFI_FDocBi.OprCode,
                                               aFI_FDocBi.MkzCode
                                               );
                    int value = UnitDatabase.db.Database.SqlQuery <int>(sql).Single();
                    if (value == 0)
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                string sql1       = string.Format(@"SELECT SerialNumber,BandNo,KalaCode,KalaName,MainUnit,MainUnitName,Amount1,Amount2,Amount3,UnitPrice,TotalPrice,Discount,Comm,Up_Flag,KalaDeghatR1,KalaDeghatR2,KalaDeghatR3,KalaDeghatM1,KalaDeghatM2,KalaDeghatM3,DeghatR
                                          FROM Web_FDocB WHERE SerialNumber = {0}", aFI_FDocBi.SerialNumber);
                var    listFactor = UnitDatabase.db.Database.SqlQuery <Web_FDocB>(sql1);
                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_FDocBi.SerialNumber, aFI_FDocBi.ModeCode, 1, aFI_FDocBi.flagLog, 0);
                return(Ok(listFactor));
            }
            return(Ok(con));
        }
        public async Task <IHttpActionResult> PostAFI_FDocHi(string ace, string sal, string group, AFI_FDocHi aFI_FDocHi)
        {
            string value = "";

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_FDocHi.SerialNumber, aFI_FDocHi.ModeCode, 2, 0);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(
                        @"DECLARE	@return_value nvarchar(50),
		                            @DocNo_Out nvarchar(50)
                          EXEC	@return_value = [dbo].[Web_SaveFDoc_HI]
		                            @DOCNOMODE = {0},
		                            @INSERTMODE = {1},
		                            @MODECODE = {2} ,
		                            @DOCNO = '{3}',
		                            @STARTNO = {4},
		                            @ENDNO = {5},
		                            @BRANCHCODE = {6},
		                            @USERCODE = '''{7}''',
		                            @SERIALNUMBER = {8},
		                            @DOCDATE = '{9}',
		                            @SPEC = '{10}',
		                            @TANZIM = '{11}',
		                            @TAHIESHODE = '{12}',
		                            @CUSTCODE = '{13}',
		                            @VSTRCODE = '{14}',
		                            @VSTRPER = {15},
		                            @PAKHSHCODE = '{16}',
		                            @KALAPRICECODE = {17},
		                            @ADDMINSPEC1 = '{18}',
		                            @ADDMINSPEC2 = '{19}',
		                            @ADDMINSPEC3 = '{20}',
		                            @ADDMINSPEC4 = '{21}',
		                            @ADDMINSPEC5 = '{22}',
		                            @ADDMINSPEC6 = '{23}',
		                            @ADDMINSPEC7 = '{24}',
		                            @ADDMINSPEC8 = '{25}',
		                            @ADDMINSPEC9 = '{26}',
		                            @ADDMINSPEC10 = '{27}',
		                            @ADDMINPRICE1 = {28},
		                            @ADDMINPRICE2 = {29},
		                            @ADDMINPRICE3 = {30},
		                            @ADDMINPRICE4 = {31},
		                            @ADDMINPRICE5 = {32},
		                            @ADDMINPRICE6 = {33},
		                            @ADDMINPRICE7 = {34},
		                            @ADDMINPRICE8 = {35},
		                            @ADDMINPRICE9 = {36},
		                            @ADDMINPRICE10 = {37},
                                    @InvCode = '{38}',
                                    @Eghdam = '''{39}''',
                                    @F01 = '{40}',
                                    @F02 = '{41}',
                                    @F03 = '{42}',
                                    @F04 = '{43}',
                                    @F05 = '{44}',
                                    @F06 = '{45}',
                                    @F07 = '{46}',
                                    @F08 = '{47}',
                                    @F09 = '{48}',
                                    @F10 = '{49}',
                                    @F11 = '{50}',
                                    @F12 = '{51}',
                                    @F13 = '{52}',
                                    @F14 = '{53}',
                                    @F15 = '{54}',
                                    @F16 = '{55}',
                                    @F17 = '{56}',
                                    @F18 = '{57}',
                                    @F19 = '{58}',
                                    @F20 = '{59}',
		                            @DOCNO_OUT = @DOCNO_OUT OUTPUT
                            SELECT	'return_value' = @return_value +'@'+ ltrim(@DOCNO_OUT)"    ,
                        aFI_FDocHi.DocNoMode,
                        aFI_FDocHi.InsertMode,
                        aFI_FDocHi.ModeCode,
                        aFI_FDocHi.DocNo,
                        aFI_FDocHi.StartNo,
                        aFI_FDocHi.EndNo,
                        aFI_FDocHi.BranchCode,
                        aFI_FDocHi.UserCode,
                        aFI_FDocHi.SerialNumber,
                        aFI_FDocHi.DocDate ?? string.Format("{0:yyyy/MM/dd}", DateTime.Now.AddDays(-1)),
                        aFI_FDocHi.Spec,
                        aFI_FDocHi.Tanzim,
                        aFI_FDocHi.TahieShode,
                        aFI_FDocHi.CustCode,
                        aFI_FDocHi.VstrCode,
                        aFI_FDocHi.VstrPer,
                        aFI_FDocHi.PakhshCode,
                        aFI_FDocHi.KalaPriceCode ?? 0,
                        aFI_FDocHi.AddMinSpec1,
                        aFI_FDocHi.AddMinSpec2,
                        aFI_FDocHi.AddMinSpec3,
                        aFI_FDocHi.AddMinSpec4,
                        aFI_FDocHi.AddMinSpec5,
                        aFI_FDocHi.AddMinSpec6,
                        aFI_FDocHi.AddMinSpec7,
                        aFI_FDocHi.AddMinSpec8,
                        aFI_FDocHi.AddMinSpec9,
                        aFI_FDocHi.AddMinSpec10,
                        aFI_FDocHi.AddMinPrice1,
                        aFI_FDocHi.AddMinPrice2,
                        aFI_FDocHi.AddMinPrice3,
                        aFI_FDocHi.AddMinPrice4,
                        aFI_FDocHi.AddMinPrice5,
                        aFI_FDocHi.AddMinPrice6,
                        aFI_FDocHi.AddMinPrice7,
                        aFI_FDocHi.AddMinPrice8,
                        aFI_FDocHi.AddMinPrice9,
                        aFI_FDocHi.AddMinPrice10,
                        aFI_FDocHi.InvCode,
                        aFI_FDocHi.Eghdam,
                        aFI_FDocHi.F01,
                        aFI_FDocHi.F02,
                        aFI_FDocHi.F03,
                        aFI_FDocHi.F04,
                        aFI_FDocHi.F05,
                        aFI_FDocHi.F06,
                        aFI_FDocHi.F07,
                        aFI_FDocHi.F08,
                        aFI_FDocHi.F09,
                        aFI_FDocHi.F10,
                        aFI_FDocHi.F11,
                        aFI_FDocHi.F12,
                        aFI_FDocHi.F13,
                        aFI_FDocHi.F14,
                        aFI_FDocHi.F15,
                        aFI_FDocHi.F16,
                        aFI_FDocHi.F17,
                        aFI_FDocHi.F18,
                        aFI_FDocHi.F19,
                        aFI_FDocHi.F20);
                    value = UnitDatabase.db.Database.SqlQuery <string>(sql).Single();
                    if (!string.IsNullOrEmpty(value))
                    {
                        await UnitDatabase.db.SaveChangesAsync();
                    }
                }
                catch (Exception e)
                {
                    throw;
                }

                string[] serials = value.Split('@');
                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, Convert.ToInt64(serials[0]), aFI_FDocHi.ModeCode, 2, aFI_FDocHi.flagLog, 0);
                return(Ok(value));
            }
            return(Ok(con));
        }
        public async Task <IHttpActionResult> PutAFI_FDocHi(string ace, string sal, string group, AFI_FDocHi aFI_FDocHi)
        {
            byte forSale;


            if (aFI_FDocHi.ModeCode == "51" || aFI_FDocHi.ModeCode == "52" || aFI_FDocHi.ModeCode == "53" ||
                aFI_FDocHi.ModeCode == "SPFCT" || aFI_FDocHi.ModeCode == "SFCT" || aFI_FDocHi.ModeCode == "SRFCT" || aFI_FDocHi.ModeCode == "SORD")
            {
                forSale = 1;
            }
            else
            {
                forSale = 0;
            }


            string value = "";

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var    dataAccount = UnitDatabase.ReadUserPassHeader(this.Request.Headers);
            string con         = UnitDatabase.CreateConection(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_FDocHi.SerialNumber, aFI_FDocHi.ModeCode, 1, 0);

            if (con == "ok")
            {
                try
                {
                    string sql = string.Format(CultureInfo.InvariantCulture, @"EXEC	[dbo].[Web_Calc_AddMin_EffPrice]
		                                            @serialNumber = {0},
                                                    @forSale = {1},
                                                    @custCode = '{2}',
                                                    @TypeJob = {3},                                                    
                                                    @Spec1 = '{4}',
                                                    @Spec2 = '{5}',
                                                    @Spec3 = '{6}',
                                                    @Spec4 = '{7}',
                                                    @Spec5 = '{8}',
                                                    @Spec6 = '{9}',
                                                    @Spec7 = '{10}',
                                                    @Spec8 = '{11}',
                                                    @Spec9 = '{12}',
                                                    @Spec10 = '{13}',                                                    
                                                    @MP1 = {14},
                                                    @MP2 = {15},
                                                    @MP3 = {16},
		                                            @MP4 = {17},
		                                            @MP5 = {18},
		                                            @MP6 = {19},
		                                            @MP7 = {20},
		                                            @MP8 = {21},
		                                            @MP9 = {22},
		                                            @MP10 = {23} "        ,
                                               aFI_FDocHi.SerialNumber,
                                               forSale,
                                               aFI_FDocHi.CustCode,
                                               0,
                                               aFI_FDocHi.AddMinSpec1,
                                               aFI_FDocHi.AddMinSpec2,
                                               aFI_FDocHi.AddMinSpec3,
                                               aFI_FDocHi.AddMinSpec4,
                                               aFI_FDocHi.AddMinSpec5,
                                               aFI_FDocHi.AddMinSpec6,
                                               aFI_FDocHi.AddMinSpec7,
                                               aFI_FDocHi.AddMinSpec8,
                                               aFI_FDocHi.AddMinSpec9,
                                               aFI_FDocHi.AddMinSpec10,
                                               Math.Abs(aFI_FDocHi.AddMinPrice1 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice2 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice3 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice4 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice5 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice6 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice7 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice8 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice9 ?? 0),
                                               Math.Abs(aFI_FDocHi.AddMinPrice10 ?? 0));
                    var result = UnitDatabase.db.Database.SqlQuery <AddMin>(sql).Where(c => c.Name != "").ToList();



                    foreach (var item in result)
                    {
                        if (item.Code == 1)
                        {
                            aFI_FDocHi.AddMinPrice1 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 2)
                        {
                            aFI_FDocHi.AddMinPrice2 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 3)
                        {
                            aFI_FDocHi.AddMinPrice3 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 4)
                        {
                            aFI_FDocHi.AddMinPrice4 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 5)
                        {
                            aFI_FDocHi.AddMinPrice5 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 6)
                        {
                            aFI_FDocHi.AddMinPrice6 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 7)
                        {
                            aFI_FDocHi.AddMinPrice7 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 8)
                        {
                            aFI_FDocHi.AddMinPrice8 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 9)
                        {
                            aFI_FDocHi.AddMinPrice9 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                        if (item.Code == 10)
                        {
                            aFI_FDocHi.AddMinPrice10 = Math.Round(item.AddMinPrice ?? 0, aFI_FDocHi.deghat);
                        }
                    }

                    var sql1 = string.Format(CultureInfo.InvariantCulture, @"DECLARE	@return_value int
                            EXEC	@return_value = [dbo].[Web_FDocB_CalcAddMin]
		                                @serialNumber = {0},
		                                @deghat = {1},
                                        @forSale = {2},
		                                @MP1 = {3},
		                                @MP2 = {4},
		                                @MP3 = {5},
		                                @MP4 = {6},
		                                @MP5 = {7},
		                                @MP6 = {8},
		                                @MP7 = {9},
		                                @MP8 = {10},
		                                @MP9 = {11},
		                                @MP10 = {12}
                            SELECT	'Return Value' = @return_value"    ,
                                             aFI_FDocHi.SerialNumber,
                                             aFI_FDocHi.deghat,
                                             forSale,
                                             aFI_FDocHi.AddMinPrice1,
                                             aFI_FDocHi.AddMinPrice2,
                                             aFI_FDocHi.AddMinPrice3,
                                             aFI_FDocHi.AddMinPrice4,
                                             aFI_FDocHi.AddMinPrice5,
                                             aFI_FDocHi.AddMinPrice6,
                                             aFI_FDocHi.AddMinPrice7,
                                             aFI_FDocHi.AddMinPrice8,
                                             aFI_FDocHi.AddMinPrice9,
                                             aFI_FDocHi.AddMinPrice10);
                    int test = UnitDatabase.db.Database.SqlQuery <int>(sql1).Single();

                    string sql2 = string.Format(CultureInfo.InvariantCulture,
                                                @"DECLARE	@return_value nvarchar(50),
                                    @DocNo_Out nvarchar(50)
                          EXEC	@return_value = [dbo].[Web_SaveFDoc_HU]
		                            @DOCNOMODE = {0},
		                            @INSERTMODE = {1},
		                            @MODECODE = {2} ,
		                            @DOCNO = '{3}',
		                            @STARTNO = {4},
		                            @ENDNO = {5},
		                            @BRANCHCODE = {6},
		                            @USERCODE = '{7}',
		                            @SERIALNUMBER = {8},
		                            @DOCDATE = '{9}',
		                            @SPEC = '{10}',
		                            @TANZIM = '{11}',
		                            @TAHIESHODE = '{12}',
		                            @CUSTCODE = '{13}',
		                            @VSTRCODE = {14},
		                            @VSTRPER = {15},
		                            @PAKHSHCODE = '{16}',
		                            @KALAPRICECODE = {17},
		                            @ADDMINSPEC1 = '{18}',
		                            @ADDMINSPEC2 = '{19}',
		                            @ADDMINSPEC3 = '{20}',
		                            @ADDMINSPEC4 = '{21}',
		                            @ADDMINSPEC5 = '{22}',
		                            @ADDMINSPEC6 = '{23}',
		                            @ADDMINSPEC7 = '{24}',
		                            @ADDMINSPEC8 = '{25}',
		                            @ADDMINSPEC9 = '{26}',
		                            @ADDMINSPEC10 = '{27}',
		                            @ADDMINPRICE1 = {28},
		                            @ADDMINPRICE2 = {29},
		                            @ADDMINPRICE3 = {30},
		                            @ADDMINPRICE4 = {31},
		                            @ADDMINPRICE5 = {32},
		                            @ADDMINPRICE6 = {33},
		                            @ADDMINPRICE7 = {34},
		                            @ADDMINPRICE8 = {35},
		                            @ADDMINPRICE9 = {36},
		                            @ADDMINPRICE10 = {37},
                                    @InvCode = '{38}',
                                    @Status = N'{39}',
									@PaymentType = {40},
                                    @Footer = '{41}',
                                    @Taeed='{42}',
                                    @F01 = '{43}',
                                    @F02 = '{44}',
                                    @F03 = '{45}',
                                    @F04 = '{46}',
                                    @F05 = '{47}',
                                    @F06 = '{48}',
                                    @F07 = '{49}',
                                    @F08 = '{50}',
                                    @F09 = '{51}',
                                    @F10 = '{52}',
                                    @F11 = '{53}',
                                    @F12 = '{54}',
                                    @F13 = '{55}',
                                    @F14 = '{56}',
                                    @F15 = '{57}',
                                    @F16 = '{58}',
                                    @F17 = '{59}',
                                    @F18 = '{60}',
                                    @F19 = '{61}',
                                    @F20 = '{62}',
                                    @Tasvib = '{63}', 
                                    @OprCode = '{64}', 
                                    @MkzCode = '{65}',
                                    @DOCNO_OUT = @DOCNO_OUT OUTPUT
                            SELECT	'return_value' = ltrim(@DOCNO_OUT)
                           ",
                                                aFI_FDocHi.DocNoMode,
                                                aFI_FDocHi.InsertMode,
                                                aFI_FDocHi.ModeCode,
                                                aFI_FDocHi.DocNo,
                                                aFI_FDocHi.StartNo,
                                                aFI_FDocHi.EndNo,
                                                aFI_FDocHi.BranchCode,
                                                aFI_FDocHi.UserCode,
                                                aFI_FDocHi.SerialNumber,
                                                aFI_FDocHi.DocDate ?? string.Format("{0:yyyy/MM/dd}", DateTime.Now.AddDays(-1)),
                                                aFI_FDocHi.Spec,
                                                aFI_FDocHi.Tanzim,
                                                aFI_FDocHi.TahieShode,
                                                aFI_FDocHi.CustCode,
                                                aFI_FDocHi.VstrCode,
                                                aFI_FDocHi.VstrPer,
                                                aFI_FDocHi.PakhshCode,
                                                aFI_FDocHi.KalaPriceCode ?? 0,
                                                aFI_FDocHi.AddMinSpec1,
                                                aFI_FDocHi.AddMinSpec2,
                                                aFI_FDocHi.AddMinSpec3,
                                                aFI_FDocHi.AddMinSpec4,
                                                aFI_FDocHi.AddMinSpec5,
                                                aFI_FDocHi.AddMinSpec6,
                                                aFI_FDocHi.AddMinSpec7,
                                                aFI_FDocHi.AddMinSpec8,
                                                aFI_FDocHi.AddMinSpec9,
                                                aFI_FDocHi.AddMinSpec10,
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice1),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice2),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice3),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice4),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice5),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice6),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice7),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice8),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice9),
                                                Math.Abs((decimal)aFI_FDocHi.AddMinPrice10),
                                                aFI_FDocHi.InvCode,
                                                aFI_FDocHi.Status,
                                                aFI_FDocHi.PaymentType,
                                                UnitPublic.ConvertTextWebToWin(aFI_FDocHi.Footer),
                                                aFI_FDocHi.Taeed == "null" ? "" : aFI_FDocHi.Taeed,
                                                aFI_FDocHi.F01,
                                                aFI_FDocHi.F02,
                                                aFI_FDocHi.F03,
                                                aFI_FDocHi.F04,
                                                aFI_FDocHi.F05,
                                                aFI_FDocHi.F06,
                                                aFI_FDocHi.F07,
                                                aFI_FDocHi.F08,
                                                aFI_FDocHi.F09,
                                                aFI_FDocHi.F10,
                                                aFI_FDocHi.F11,
                                                aFI_FDocHi.F12,
                                                aFI_FDocHi.F13,
                                                aFI_FDocHi.F14,
                                                aFI_FDocHi.F15,
                                                aFI_FDocHi.F16,
                                                aFI_FDocHi.F17,
                                                aFI_FDocHi.F18,
                                                aFI_FDocHi.F19,
                                                aFI_FDocHi.F20,
                                                aFI_FDocHi.Tasvib,
                                                aFI_FDocHi.OprCode,
                                                aFI_FDocHi.MkzCode
                                                );
                    value = UnitDatabase.db.Database.SqlQuery <string>(sql2).Single();

                    await UnitDatabase.db.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    throw;
                }

                UnitDatabase.SaveLog(dataAccount[0], dataAccount[1], dataAccount[2], ace, sal, group, aFI_FDocHi.SerialNumber, aFI_FDocHi.ModeCode, 1, aFI_FDocHi.flagLog, 0);
                return(Ok(value));
            }
            return(Ok(con));
        }